1 // Copyright (c) 2015-2020 The Khronos Group Inc.
2 //
3 // SPDX-License-Identifier: Apache-2.0 OR MIT
4 //
5 
6 // This header is generated from the Khronos Vulkan XML API Registry.
7 
8 #ifndef VULKAN_HPP
9 #define VULKAN_HPP
10 
11 #if defined( _MSVC_LANG )
12 #  define VULKAN_HPP_CPLUSPLUS _MSVC_LANG
13 #else
14 #  define VULKAN_HPP_CPLUSPLUS __cplusplus
15 #endif
16 
17 #if 201703L < VULKAN_HPP_CPLUSPLUS
18 #  define VULKAN_HPP_CPP_VERSION 20
19 #elif 201402L < VULKAN_HPP_CPLUSPLUS
20 #  define VULKAN_HPP_CPP_VERSION 17
21 #elif 201103L < VULKAN_HPP_CPLUSPLUS
22 #  define VULKAN_HPP_CPP_VERSION 14
23 #elif 199711L < VULKAN_HPP_CPLUSPLUS
24 #  define VULKAN_HPP_CPP_VERSION 11
25 #else
26 #  error "vulkan.hpp needs at least c++ standard version 11"
27 #endif
28 
29 #include <algorithm>
30 #include <array>
31 #include <cstddef>
32 #include <cstdint>
33 #include <cstring>
34 #include <functional>
35 #include <initializer_list>
36 #include <sstream>
37 #include <string>
38 #include <system_error>
39 #include <tuple>
40 #include <type_traits>
41 #include <vulkan/vulkan.h>
42 
43 #if 17 <= VULKAN_HPP_CPP_VERSION
44 #include <string_view>
45 #endif
46 
47 #if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
48 # if !defined(VULKAN_HPP_NO_SMART_HANDLE)
49 #  define VULKAN_HPP_NO_SMART_HANDLE
50 # endif
51 #else
52 # include <memory>
53 # include <vector>
54 #endif
55 
56 #if !defined(VULKAN_HPP_ASSERT)
57 # include <cassert>
58 # define VULKAN_HPP_ASSERT   assert
59 #endif
60 
61 #if !defined(VULKAN_HPP_ASSERT_ON_RESULT)
62 # define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
63 #endif
64 
65 #if !defined(VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL)
66 # define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
67 #endif
68 
69 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
70 #  if defined( __unix__ ) || defined( __APPLE__ )
71 #    include <dlfcn.h>
72 #  elif defined( _WIN32 )
73 typedef struct HINSTANCE__ * HINSTANCE;
74 #    if defined( _WIN64 )
75 typedef int64_t( __stdcall * FARPROC )();
76 #    else
77 typedef int( __stdcall * FARPROC )();
78 #    endif
79 extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
80 extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
81 extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName );
82 #  endif
83 #endif
84 
85 #if !defined(__has_include)
86 # define __has_include(x) false
87 #endif
88 
89 #if ( 201711 <= __cpp_impl_three_way_comparison ) && __has_include( <compare> )
90 # define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
91 #endif
92 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
93 # include <compare>
94 #endif
95 
96 
97 static_assert( VK_HEADER_VERSION ==  160 , "Wrong VK_HEADER_VERSION!" );
98 
99 // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
100 // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
101 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
102 # if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
103 #  define VULKAN_HPP_TYPESAFE_CONVERSION
104 # endif
105 #endif
106 
107 // <tuple> includes <sys/sysmacros.h> through some other header
108 // this results in major(x) being resolved to gnu_dev_major(x)
109 // which is an expression in a constructor initializer list.
110 #if defined(major)
111   #undef major
112 #endif
113 #if defined(minor)
114   #undef minor
115 #endif
116 
117 // Windows defines MemoryBarrier which is deprecated and collides
118 // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
119 #if defined(MemoryBarrier)
120   #undef MemoryBarrier
121 #endif
122 
123 #if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS)
124 # if defined(__clang__)
125 #  if __has_feature(cxx_unrestricted_unions)
126 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
127 #  endif
128 # elif defined(__GNUC__)
129 #  define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
130 #  if 40600 <= GCC_VERSION
131 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
132 #  endif
133 # elif defined(_MSC_VER)
134 #  if 1900 <= _MSC_VER
135 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
136 #  endif
137 # endif
138 #endif
139 
140 #if !defined(VULKAN_HPP_INLINE)
141 # if defined(__clang__)
142 #  if __has_attribute(always_inline)
143 #   define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
144 #  else
145 #   define VULKAN_HPP_INLINE inline
146 #  endif
147 # elif defined(__GNUC__)
148 #  define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
149 # elif defined(_MSC_VER)
150 #  define VULKAN_HPP_INLINE inline
151 # else
152 #  define VULKAN_HPP_INLINE inline
153 # endif
154 #endif
155 
156 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
157 # define VULKAN_HPP_TYPESAFE_EXPLICIT
158 #else
159 # define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
160 #endif
161 
162 #if defined(__cpp_constexpr)
163 # define VULKAN_HPP_CONSTEXPR constexpr
164 # if __cpp_constexpr >= 201304
165 #  define VULKAN_HPP_CONSTEXPR_14  constexpr
166 # else
167 #  define VULKAN_HPP_CONSTEXPR_14
168 # endif
169 # define VULKAN_HPP_CONST_OR_CONSTEXPR  constexpr
170 #else
171 # define VULKAN_HPP_CONSTEXPR
172 # define VULKAN_HPP_CONSTEXPR_14
173 # define VULKAN_HPP_CONST_OR_CONSTEXPR  const
174 #endif
175 
176 #if !defined(VULKAN_HPP_NOEXCEPT)
177 # if defined(_MSC_VER) && (_MSC_VER <= 1800)
178 #  define VULKAN_HPP_NOEXCEPT
179 # else
180 #  define VULKAN_HPP_NOEXCEPT noexcept
181 #  define VULKAN_HPP_HAS_NOEXCEPT 1
182 #  if defined(VULKAN_HPP_NO_EXCEPTIONS)
183 #    define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
184 #  else
185 #    define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
186 #  endif
187 # endif
188 #endif
189 
190 #if 14 <= VULKAN_HPP_CPP_VERSION
191 #  define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
192 #else
193 #  define VULKAN_HPP_DEPRECATED( msg )
194 #endif
195 
196 #if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
197 #  define VULKAN_HPP_NODISCARD [[nodiscard]]
198 #  if defined(VULKAN_HPP_NO_EXCEPTIONS)
199 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
200 #  else
201 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
202 #  endif
203 #else
204 #  define VULKAN_HPP_NODISCARD
205 #  define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
206 #endif
207 
208 #if !defined(VULKAN_HPP_NAMESPACE)
209 #define VULKAN_HPP_NAMESPACE vk
210 #endif
211 
212 #define VULKAN_HPP_STRINGIFY2(text) #text
213 #define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text)
214 #define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE)
215 
216 namespace VULKAN_HPP_NAMESPACE
217 {
218 
219 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
220   template <typename T>
221   class ArrayProxy
222   {
223   public:
ArrayProxy()224     VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
225       : m_count( 0 )
226       , m_ptr( nullptr )
227     {}
228 
ArrayProxy(std::nullptr_t)229     VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
230       : m_count( 0 )
231       , m_ptr( nullptr )
232     {}
233 
ArrayProxy(T & value)234     ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
235       : m_count( 1 )
236       , m_ptr( &value )
237     {}
238 
239     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(typename std::remove_const<T>::type & value)240     ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
241       : m_count( 1 )
242       , m_ptr( &value )
243     {}
244 
ArrayProxy(uint32_t count,T * ptr)245     ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
246       : m_count( count )
247       , m_ptr( ptr )
248     {}
249 
250     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(uint32_t count,typename std::remove_const<T>::type * ptr)251     ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
252       : m_count( count )
253       , m_ptr( ptr )
254     {}
255 
ArrayProxy(std::initializer_list<T> const & list)256     ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
257       : m_count( static_cast<uint32_t>( list.size() ) )
258       , m_ptr( list.begin() )
259     {}
260 
261     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::initializer_list<typename std::remove_const<T>::type> const & list)262     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
263       : m_count( static_cast<uint32_t>( list.size() ) )
264       , m_ptr( list.begin() )
265     {}
266 
ArrayProxy(std::initializer_list<T> & list)267     ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
268       : m_count( static_cast<uint32_t>( list.size() ) )
269       , m_ptr( list.begin() )
270     {}
271 
272     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::initializer_list<typename std::remove_const<T>::type> & list)273     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
274       : m_count( static_cast<uint32_t>( list.size() ) )
275       , m_ptr( list.begin() )
276     {}
277 
278     template <size_t N>
ArrayProxy(std::array<T,N> const & data)279     ArrayProxy( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
280       : m_count( N )
281       , m_ptr( data.data() )
282     {}
283 
284     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::array<typename std::remove_const<T>::type,N> const & data)285     ArrayProxy( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
286       : m_count( N )
287       , m_ptr( data.data() )
288     {}
289 
290     template <size_t N>
ArrayProxy(std::array<T,N> & data)291     ArrayProxy( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
292       : m_count( N )
293       , m_ptr( data.data() )
294     {}
295 
296     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::array<typename std::remove_const<T>::type,N> & data)297     ArrayProxy( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
298       : m_count( N )
299       , m_ptr( data.data() )
300     {}
301 
302     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> const & data)303     ArrayProxy( std::vector<T, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
304       : m_count( static_cast<uint32_t>( data.size() ) )
305       , m_ptr( data.data() )
306     {}
307 
308     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
309               typename B      = T,
310               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> const & data)311     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
312       : m_count( static_cast<uint32_t>( data.size() ) )
313       , m_ptr( data.data() )
314     {}
315 
316     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> & data)317     ArrayProxy( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
318       : m_count( static_cast<uint32_t>( data.size() ) )
319       , m_ptr( data.data() )
320     {}
321 
322     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
323               typename B      = T,
324               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> & data)325     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
326       : m_count( static_cast<uint32_t>( data.size() ) )
327       , m_ptr( data.data() )
328     {}
329 
begin() const330     const T * begin() const VULKAN_HPP_NOEXCEPT
331     {
332       return m_ptr;
333     }
334 
end() const335     const T * end() const VULKAN_HPP_NOEXCEPT
336     {
337       return m_ptr + m_count;
338     }
339 
front() const340     const T & front() const VULKAN_HPP_NOEXCEPT
341     {
342       VULKAN_HPP_ASSERT( m_count && m_ptr );
343       return *m_ptr;
344     }
345 
back() const346     const T & back() const VULKAN_HPP_NOEXCEPT
347     {
348       VULKAN_HPP_ASSERT( m_count && m_ptr );
349       return *( m_ptr + m_count - 1 );
350     }
351 
empty() const352     bool empty() const VULKAN_HPP_NOEXCEPT
353     {
354       return ( m_count == 0 );
355     }
356 
size() const357     uint32_t size() const VULKAN_HPP_NOEXCEPT
358     {
359       return m_count;
360     }
361 
data() const362     T * data() const VULKAN_HPP_NOEXCEPT
363     {
364       return m_ptr;
365     }
366 
367   private:
368     uint32_t m_count;
369     T *      m_ptr;
370   };
371 
372   template <typename T>
373   class ArrayProxyNoTemporaries
374   {
375   public:
ArrayProxyNoTemporaries()376     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
377       : m_count( 0 )
378       , m_ptr( nullptr )
379     {}
380 
ArrayProxyNoTemporaries(std::nullptr_t)381     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
382       : m_count( 0 )
383       , m_ptr( nullptr )
384     {}
385 
386     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(typename std::remove_const<T>::type & value)387     ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
388       : m_count( 1 )
389       , m_ptr( &value )
390     {}
391 
ArrayProxyNoTemporaries(uint32_t count,T * ptr)392     ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
393       : m_count( count )
394       , m_ptr( ptr )
395     {}
396 
397     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(uint32_t count,typename std::remove_const<T>::type * ptr)398     ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
399       : m_count( count )
400       , m_ptr( ptr )
401     {}
402 
ArrayProxyNoTemporaries(std::initializer_list<T> const & list)403     ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
404       : m_count( static_cast<uint32_t>( list.size() ) )
405       , m_ptr( list.begin() )
406     {}
407 
408     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::initializer_list<typename std::remove_const<T>::type> const & list)409     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
410       : m_count( static_cast<uint32_t>( list.size() ) )
411       , m_ptr( list.begin() )
412     {}
413 
ArrayProxyNoTemporaries(std::initializer_list<T> & list)414     ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
415       : m_count( static_cast<uint32_t>( list.size() ) )
416       , m_ptr( list.begin() )
417     {}
418 
419     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::initializer_list<typename std::remove_const<T>::type> & list)420     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
421       : m_count( static_cast<uint32_t>( list.size() ) )
422       , m_ptr( list.begin() )
423     {}
424 
425     ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) VULKAN_HPP_NOEXCEPT = delete;
426     ArrayProxyNoTemporaries( std::initializer_list<T> && list ) VULKAN_HPP_NOEXCEPT       = delete;
427 
428     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> const & data)429     ArrayProxyNoTemporaries( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
430       : m_count( N )
431       , m_ptr( data.data() )
432     {}
433 
434     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::array<typename std::remove_const<T>::type,N> const & data)435     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
436       : m_count( N )
437       , m_ptr( data.data() )
438     {}
439 
440     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> & data)441     ArrayProxyNoTemporaries( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
442       : m_count( N )
443       , m_ptr( data.data() )
444     {}
445 
446     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::array<typename std::remove_const<T>::type,N> & data)447     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
448       : m_count( N )
449       , m_ptr( data.data() )
450     {}
451 
452     template <size_t N>
453     ArrayProxyNoTemporaries( std::array<T, N> const && data ) VULKAN_HPP_NOEXCEPT = delete;
454     template <size_t N>
455     ArrayProxyNoTemporaries( std::array<T, N> && data ) VULKAN_HPP_NOEXCEPT       = delete;
456 
457     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> const & data)458     ArrayProxyNoTemporaries( std::vector<T, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
459       : m_count( static_cast<uint32_t>( data.size() ) )
460       , m_ptr( data.data() )
461     {}
462 
463     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
464               typename B      = T,
465               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> const & data)466     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
467       : m_count( static_cast<uint32_t>( data.size() ) )
468       , m_ptr( data.data() )
469     {}
470 
471     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> & data)472     ArrayProxyNoTemporaries( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
473       : m_count( static_cast<uint32_t>( data.size() ) )
474       , m_ptr( data.data() )
475     {}
476 
477     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
478               typename B      = T,
479               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> & data)480     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
481       : m_count( static_cast<uint32_t>( data.size() ) )
482       , m_ptr( data.data() )
483     {}
484 
485     ArrayProxyNoTemporaries( std::vector<T> const && data ) VULKAN_HPP_NOEXCEPT = delete;
486     ArrayProxyNoTemporaries( std::vector<T> && data ) VULKAN_HPP_NOEXCEPT       = delete;
487 
begin() const488     const T * begin() const VULKAN_HPP_NOEXCEPT
489     {
490       return m_ptr;
491     }
492 
end() const493     const T * end() const VULKAN_HPP_NOEXCEPT
494     {
495       return m_ptr + m_count;
496     }
497 
front() const498     const T & front() const VULKAN_HPP_NOEXCEPT
499     {
500       VULKAN_HPP_ASSERT( m_count && m_ptr );
501       return *m_ptr;
502     }
503 
back() const504     const T & back() const VULKAN_HPP_NOEXCEPT
505     {
506       VULKAN_HPP_ASSERT( m_count && m_ptr );
507       return *( m_ptr + m_count - 1 );
508     }
509 
empty() const510     bool empty() const VULKAN_HPP_NOEXCEPT
511     {
512       return ( m_count == 0 );
513     }
514 
size() const515     uint32_t size() const VULKAN_HPP_NOEXCEPT
516     {
517       return m_count;
518     }
519 
data() const520     T * data() const VULKAN_HPP_NOEXCEPT
521     {
522       return m_ptr;
523     }
524 
525   private:
526     uint32_t m_count;
527     T *      m_ptr;
528   };
529 #endif
530 
531   template <typename T, size_t N>
532   class ArrayWrapper1D : public std::array<T,N>
533   {
534   public:
ArrayWrapper1D()535     VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT
536       : std::array<T, N>()
537     {}
538 
ArrayWrapper1D(std::array<T,N> const & data)539     VULKAN_HPP_CONSTEXPR ArrayWrapper1D(std::array<T,N> const& data) VULKAN_HPP_NOEXCEPT
540       : std::array<T, N>(data)
541     {}
542 
543 #if defined(_WIN32) && !defined(_WIN64)
operator [](int index) const544     VULKAN_HPP_CONSTEXPR T const& operator[](int index) const VULKAN_HPP_NOEXCEPT
545     {
546       return std::array<T, N>::operator[](index);
547     }
548 
operator [](int index)549     T & operator[](int index) VULKAN_HPP_NOEXCEPT
550     {
551       return std::array<T, N>::operator[](index);
552     }
553 #endif
554 
operator T const*() const555     operator T const* () const VULKAN_HPP_NOEXCEPT
556     {
557       return this->data();
558     }
559 
operator T*()560     operator T * () VULKAN_HPP_NOEXCEPT
561     {
562       return this->data();
563     }
564 
565     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string() const566     operator std::string() const
567     {
568       return std::string( this->data() );
569     }
570 
571 #if 17 <= VULKAN_HPP_CPP_VERSION
572     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string_view() const573     operator std::string_view() const
574     {
575       return std::string_view( this->data() );
576     }
577 #endif
578 
579     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <(ArrayWrapper1D<char,N> const & rhs) const580     bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
581     {
582       return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
583     }
584 
585     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <=(ArrayWrapper1D<char,N> const & rhs) const586     bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
587     {
588       return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
589     }
590 
591     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >(ArrayWrapper1D<char,N> const & rhs) const592     bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
593     {
594       return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
595     }
596 
597     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >=(ArrayWrapper1D<char,N> const & rhs) const598     bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
599     {
600       return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
601     }
602 
603     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator ==(ArrayWrapper1D<char,N> const & rhs) const604     bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
605     {
606       return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
607     }
608 
609     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator !=(ArrayWrapper1D<char,N> const & rhs) const610     bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
611     {
612       return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
613     }
614   };
615 
616   // specialization of relational operators between std::string and arrays of chars
617   template <size_t N>
operator <(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)618   bool operator<(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
619   {
620     return lhs < rhs.data();
621   }
622 
623   template <size_t N>
operator <=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)624   bool operator<=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
625   {
626     return lhs <= rhs.data();
627   }
628 
629   template <size_t N>
operator >(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)630   bool operator>(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
631   {
632     return lhs > rhs.data();
633   }
634 
635   template <size_t N>
operator >=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)636   bool operator>=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
637   {
638     return lhs >= rhs.data();
639   }
640 
641   template <size_t N>
operator ==(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)642   bool operator==(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
643   {
644     return lhs == rhs.data();
645   }
646 
647   template <size_t N>
operator !=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)648   bool operator!=(std::string const& lhs, ArrayWrapper1D<char, N> const& rhs) VULKAN_HPP_NOEXCEPT
649   {
650     return lhs != rhs.data();
651   }
652 
653   template <typename T, size_t N, size_t M>
654   class ArrayWrapper2D : public std::array<ArrayWrapper1D<T,M>,N>
655   {
656   public:
ArrayWrapper2D()657     VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT
658       : std::array<ArrayWrapper1D<T,M>, N>()
659     {}
660 
ArrayWrapper2D(std::array<std::array<T,M>,N> const & data)661     VULKAN_HPP_CONSTEXPR ArrayWrapper2D(std::array<std::array<T,M>,N> const& data) VULKAN_HPP_NOEXCEPT
662       : std::array<ArrayWrapper1D<T,M>, N>(*reinterpret_cast<std::array<ArrayWrapper1D<T,M>,N> const*>(&data))
663     {}
664   };
665 
666   template <typename FlagBitsType> struct FlagTraits
667   {
668     enum { allFlags = 0 };
669   };
670 
671   template <typename BitType>
672   class Flags
673   {
674   public:
675     using MaskType = typename std::underlying_type<BitType>::type;
676 
677     // constructors
Flags()678     VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT
679       : m_mask(0)
680     {}
681 
Flags(BitType bit)682     VULKAN_HPP_CONSTEXPR Flags(BitType bit) VULKAN_HPP_NOEXCEPT
683       : m_mask(static_cast<MaskType>(bit))
684     {}
685 
686     VULKAN_HPP_CONSTEXPR Flags(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT = default;
687 
Flags(MaskType flags)688     VULKAN_HPP_CONSTEXPR explicit Flags(MaskType flags) VULKAN_HPP_NOEXCEPT
689       : m_mask(flags)
690     {}
691 
692     // relational operators
693 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
694     auto operator<=>(Flags<BitType> const&) const = default;
695 #else
operator <(Flags<BitType> const & rhs) const696     VULKAN_HPP_CONSTEXPR bool operator<(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
697     {
698       return m_mask < rhs.m_mask;
699     }
700 
operator <=(Flags<BitType> const & rhs) const701     VULKAN_HPP_CONSTEXPR bool operator<=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
702     {
703       return m_mask <= rhs.m_mask;
704     }
705 
operator >(Flags<BitType> const & rhs) const706     VULKAN_HPP_CONSTEXPR bool operator>(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
707     {
708       return m_mask > rhs.m_mask;
709     }
710 
operator >=(Flags<BitType> const & rhs) const711     VULKAN_HPP_CONSTEXPR bool operator>=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
712     {
713       return m_mask >= rhs.m_mask;
714     }
715 
operator ==(Flags<BitType> const & rhs) const716     VULKAN_HPP_CONSTEXPR bool operator==(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
717     {
718       return m_mask == rhs.m_mask;
719     }
720 
operator !=(Flags<BitType> const & rhs) const721     VULKAN_HPP_CONSTEXPR bool operator!=(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
722     {
723       return m_mask != rhs.m_mask;
724     }
725 #endif
726 
727     // logical operator
operator !() const728     VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
729     {
730       return !m_mask;
731     }
732 
733     // bitwise operators
operator &(Flags<BitType> const & rhs) const734     VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
735     {
736       return Flags<BitType>(m_mask & rhs.m_mask);
737     }
738 
operator |(Flags<BitType> const & rhs) const739     VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
740     {
741       return Flags<BitType>(m_mask | rhs.m_mask);
742     }
743 
operator ^(Flags<BitType> const & rhs) const744     VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(Flags<BitType> const& rhs) const VULKAN_HPP_NOEXCEPT
745     {
746       return Flags<BitType>(m_mask ^ rhs.m_mask);
747     }
748 
operator ~() const749     VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
750     {
751       return Flags<BitType>(m_mask ^ FlagTraits<BitType>::allFlags);
752     }
753 
754     // assignment operators
755     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT = default;
756 
operator |=(Flags<BitType> const & rhs)757     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
758     {
759       m_mask |= rhs.m_mask;
760       return *this;
761     }
762 
operator &=(Flags<BitType> const & rhs)763     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
764     {
765       m_mask &= rhs.m_mask;
766       return *this;
767     }
768 
operator ^=(Flags<BitType> const & rhs)769     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=(Flags<BitType> const& rhs) VULKAN_HPP_NOEXCEPT
770     {
771       m_mask ^= rhs.m_mask;
772       return *this;
773     }
774 
775     // cast operators
operator bool() const776     explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
777     {
778       return !!m_mask;
779     }
780 
operator MaskType() const781     explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
782     {
783         return m_mask;
784     }
785 
786   private:
787     MaskType  m_mask;
788   };
789 
790 #if !defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
791   // relational operators only needed for pre C++20
792   template <typename BitType>
operator <(BitType bit,Flags<BitType> const & flags)793   VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
794   {
795     return flags.operator>( bit );
796   }
797 
798   template <typename BitType>
operator <=(BitType bit,Flags<BitType> const & flags)799   VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
800   {
801     return flags.operator>=( bit );
802   }
803 
804   template <typename BitType>
operator >(BitType bit,Flags<BitType> const & flags)805   VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
806   {
807     return flags.operator<( bit );
808   }
809 
810   template <typename BitType>
operator >=(BitType bit,Flags<BitType> const & flags)811   VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
812   {
813     return flags.operator<=(bit);
814   }
815 
816   template <typename BitType>
operator ==(BitType bit,Flags<BitType> const & flags)817   VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
818   {
819     return flags.operator==( bit );
820   }
821 
822   template <typename BitType>
operator !=(BitType bit,Flags<BitType> const & flags)823   VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
824   {
825     return flags.operator!=( bit );
826   }
827 #endif
828 
829   // bitwise operators
830   template <typename BitType>
operator &(BitType bit,Flags<BitType> const & flags)831   VULKAN_HPP_CONSTEXPR Flags<BitType> operator&(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
832   {
833     return flags.operator&( bit );
834   }
835 
836   template <typename BitType>
operator |(BitType bit,Flags<BitType> const & flags)837   VULKAN_HPP_CONSTEXPR Flags<BitType> operator|(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
838   {
839     return flags.operator|( bit );
840   }
841 
842   template <typename BitType>
operator ^(BitType bit,Flags<BitType> const & flags)843   VULKAN_HPP_CONSTEXPR Flags<BitType> operator^(BitType bit, Flags<BitType> const& flags) VULKAN_HPP_NOEXCEPT
844   {
845     return flags.operator^( bit );
846   }
847 
848   template <typename RefType>
849   class Optional
850   {
851   public:
Optional(RefType & reference)852     Optional(RefType & reference) VULKAN_HPP_NOEXCEPT { m_ptr = &reference; }
Optional(RefType * ptr)853     Optional(RefType * ptr) VULKAN_HPP_NOEXCEPT { m_ptr = ptr; }
Optional(std::nullptr_t)854     Optional(std::nullptr_t) VULKAN_HPP_NOEXCEPT { m_ptr = nullptr; }
855 
operator RefType*() const856     operator RefType*() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator ->() const857     RefType const* operator->() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
operator bool() const858     explicit operator bool() const VULKAN_HPP_NOEXCEPT { return !!m_ptr; }
859 
860   private:
861     RefType *m_ptr;
862   };
863 
864   template <typename X, typename Y> struct StructExtends { enum { value = false }; };
865 
866   template<typename Type, class...>
867   struct IsPartOfStructureChain
868   {
869     static const bool valid = false;
870   };
871 
872   template<typename Type, typename Head, typename... Tail>
873   struct IsPartOfStructureChain<Type, Head, Tail...>
874   {
875     static const bool valid = std::is_same<Type, Head>::value || IsPartOfStructureChain<Type, Tail...>::valid;
876   };
877 
878   template <size_t Index, typename T, typename... ChainElements>
879   struct StructureChainContains
880   {
881     static const bool value = std::is_same<T, typename std::tuple_element<Index, std::tuple<ChainElements...>>::type>::value ||
882                               StructureChainContains<Index - 1, T, ChainElements...>::value;
883   };
884 
885   template <typename T, typename... ChainElements>
886   struct StructureChainContains<0, T, ChainElements...>
887   {
888     static const bool value = std::is_same<T, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value;
889   };
890 
891   template <size_t Index, typename... ChainElements>
892   struct StructureChainValidation
893   {
894     using TestType = typename std::tuple_element<Index, std::tuple<ChainElements...>>::type;
895     static const bool valid =
896       StructExtends<TestType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
897       ( TestType::allowDuplicate || !StructureChainContains<Index - 1, TestType, ChainElements...>::value ) &&
898       StructureChainValidation<Index - 1, ChainElements...>::valid;
899   };
900 
901   template <typename... ChainElements>
902   struct StructureChainValidation<0, ChainElements...>
903   {
904     static const bool valid = true;
905   };
906 
907   template <typename... ChainElements>
908   class StructureChain : public std::tuple<ChainElements...>
909   {
910   public:
StructureChain()911     StructureChain() VULKAN_HPP_NOEXCEPT
912     {
913       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
914                      "The structure chain is not valid!" );
915       link<sizeof...( ChainElements ) - 1>();
916     }
917 
StructureChain(StructureChain const & rhs)918     StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( rhs )
919     {
920       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
921                      "The structure chain is not valid!" );
922       link<sizeof...( ChainElements ) - 1>();
923     }
924 
StructureChain(StructureChain && rhs)925     StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT
926       : std::tuple<ChainElements...>( std::forward<std::tuple<ChainElements...>>( rhs ) )
927     {
928       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
929                      "The structure chain is not valid!" );
930       link<sizeof...( ChainElements ) - 1>();
931     }
932 
StructureChain(ChainElements const &...elems)933     StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( elems... )
934     {
935       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
936                      "The structure chain is not valid!" );
937       link<sizeof...( ChainElements ) - 1>();
938     }
939 
operator =(StructureChain const & rhs)940     StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT
941     {
942       std::tuple<ChainElements...>::operator=( rhs );
943       link<sizeof...( ChainElements ) - 1>();
944       return *this;
945     }
946 
947     StructureChain & operator=( StructureChain && rhs ) = delete;
948 
949     template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
950     T & get() VULKAN_HPP_NOEXCEPT
951     {
952       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...>&>( *this ) );
953     }
954 
955     template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
956     T const & get() const VULKAN_HPP_NOEXCEPT
957     {
958       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...>&>( *this ) );
959     }
960 
961     template <typename T0, typename T1, typename... Ts>
get()962     std::tuple<T0 &, T1 &, Ts &...> get() VULKAN_HPP_NOEXCEPT
963     {
964       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
965     }
966 
967     template <typename T0, typename T1, typename... Ts>
get() const968     std::tuple<T0 const &, T1 const &, Ts const &...> get() const VULKAN_HPP_NOEXCEPT
969     {
970       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
971     }
972 
973     template <typename ClassType, size_t Which = 0>
relink()974     void relink() VULKAN_HPP_NOEXCEPT
975     {
976       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
977                      "Can't relink Structure that's not part of this StructureChain!" );
978       static_assert(
979         !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || (Which != 0),
980         "It's not allowed to have the first element unlinked!" );
981 
982       auto pNext = reinterpret_cast<VkBaseInStructure *>( &get<ClassType, Which>() );
983       VULKAN_HPP_ASSERT( !isLinked( pNext ) );
984       auto & headElement = std::get<0>( static_cast<std::tuple<ChainElements...>&>( *this ) );
985       pNext->pNext       = reinterpret_cast<VkBaseInStructure const*>(headElement.pNext);
986       headElement.pNext  = pNext;
987     }
988 
989     template <typename ClassType, size_t Which = 0>
unlink()990     void unlink() VULKAN_HPP_NOEXCEPT
991     {
992       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
993                      "Can't unlink Structure that's not part of this StructureChain!" );
994       static_assert(
995         !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || (Which != 0),
996         "It's not allowed to unlink the first element!" );
997 
998       unlink<sizeof...( ChainElements ) - 1>( reinterpret_cast<VkBaseOutStructure const *>( &get<ClassType, Which>() ) );
999     }
1000 
1001   private:
1002     template <int Index, typename T, int Which, typename, class First, class... Types>
1003     struct ChainElementIndex : ChainElementIndex<Index + 1, T, Which, void, Types...>
1004     {};
1005 
1006     template <int Index, typename T, int Which, class First, class... Types>
1007     struct ChainElementIndex<Index,
1008                              T,
1009                              Which,
1010                              typename std::enable_if<!std::is_same<T, First>::value, void>::type,
1011                              First,
1012                              Types...> : ChainElementIndex<Index + 1, T, Which, void, Types...>
1013     {};
1014 
1015     template <int Index, typename T, int Which, class First, class... Types>
1016     struct ChainElementIndex<Index,
1017                              T,
1018                              Which,
1019                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1020                              First,
1021                              Types...> : ChainElementIndex<Index + 1, T, Which - 1, void, Types...>
1022     {};
1023 
1024     template <int Index, typename T, class First, class... Types>
1025     struct ChainElementIndex<Index,
1026                              T,
1027                              0,
1028                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1029                              First,
1030                              Types...> : std::integral_constant<int, Index>
1031     {};
1032 
isLinked(VkBaseInStructure const * pNext)1033     bool isLinked( VkBaseInStructure const * pNext )
1034     {
1035       VkBaseInStructure const * elementPtr = reinterpret_cast<VkBaseInStructure const*>(&std::get<0>( static_cast<std::tuple<ChainElements...>&>( *this ) ) );
1036       while ( elementPtr )
1037       {
1038         if ( elementPtr->pNext == pNext )
1039         {
1040           return true;
1041         }
1042         elementPtr = elementPtr->pNext;
1043       }
1044       return false;
1045     }
1046 
1047     template <size_t Index>
link()1048     typename std::enable_if<Index != 0, void>::type link() VULKAN_HPP_NOEXCEPT
1049     {
1050       auto & x = std::get<Index - 1>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1051       x.pNext  = &std::get<Index>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1052       link<Index - 1>();
1053     }
1054 
1055     template <size_t Index>
link()1056     typename std::enable_if<Index == 0, void>::type link() VULKAN_HPP_NOEXCEPT
1057     {}
1058 
1059     template <size_t Index>
unlink(VkBaseOutStructure const * pNext)1060     typename std::enable_if<Index != 0, void>::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
1061     {
1062       auto & element = std::get<Index>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1063       if ( element.pNext == pNext )
1064       {
1065         element.pNext = pNext->pNext;
1066       }
1067       else
1068       {
1069         unlink<Index - 1>( pNext );
1070       }
1071     }
1072 
1073     template <size_t Index>
unlink(VkBaseOutStructure const * pNext)1074     typename std::enable_if<Index == 0, void>::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
1075     {
1076       auto & element = std::get<0>( static_cast<std::tuple<ChainElements...>&>( *this ) );
1077       if ( element.pNext == pNext )
1078       {
1079         element.pNext = pNext->pNext;
1080       }
1081       else
1082       {
1083         VULKAN_HPP_ASSERT( false );  // fires, if the ClassType member has already been unlinked !
1084       }
1085     }
1086   };
1087 
1088 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
1089   template <typename Type, typename Dispatch> class UniqueHandleTraits;
1090 
1091   template <typename Type, typename Dispatch>
1092   class UniqueHandle : public UniqueHandleTraits<Type,Dispatch>::deleter
1093   {
1094   private:
1095     using Deleter = typename UniqueHandleTraits<Type,Dispatch>::deleter;
1096 
1097   public:
1098     using element_type = Type;
1099 
UniqueHandle()1100     UniqueHandle()
1101       : Deleter()
1102       , m_value()
1103     {}
1104 
UniqueHandle(Type const & value,Deleter const & deleter=Deleter ())1105     explicit UniqueHandle( Type const& value, Deleter const& deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
1106       : Deleter( deleter)
1107       , m_value( value )
1108     {}
1109 
1110     UniqueHandle( UniqueHandle const& ) = delete;
1111 
UniqueHandle(UniqueHandle && other)1112     UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1113       : Deleter( std::move( static_cast<Deleter&>( other ) ) )
1114       , m_value( other.release() )
1115     {}
1116 
~UniqueHandle()1117     ~UniqueHandle() VULKAN_HPP_NOEXCEPT
1118     {
1119       if ( m_value ) this->destroy( m_value );
1120     }
1121 
1122     UniqueHandle & operator=( UniqueHandle const& ) = delete;
1123 
operator =(UniqueHandle && other)1124     UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1125     {
1126       reset( other.release() );
1127       *static_cast<Deleter*>(this) = std::move( static_cast<Deleter&>(other) );
1128       return *this;
1129     }
1130 
operator bool() const1131     explicit operator bool() const VULKAN_HPP_NOEXCEPT
1132     {
1133       return m_value.operator bool();
1134     }
1135 
operator ->() const1136     Type const* operator->() const VULKAN_HPP_NOEXCEPT
1137     {
1138       return &m_value;
1139     }
1140 
operator ->()1141     Type * operator->() VULKAN_HPP_NOEXCEPT
1142     {
1143       return &m_value;
1144     }
1145 
operator *() const1146     Type const& operator*() const VULKAN_HPP_NOEXCEPT
1147     {
1148       return m_value;
1149     }
1150 
operator *()1151     Type & operator*() VULKAN_HPP_NOEXCEPT
1152     {
1153       return m_value;
1154     }
1155 
get() const1156     const Type & get() const VULKAN_HPP_NOEXCEPT
1157     {
1158       return m_value;
1159     }
1160 
get()1161     Type & get() VULKAN_HPP_NOEXCEPT
1162     {
1163       return m_value;
1164     }
1165 
reset(Type const & value=Type ())1166     void reset( Type const& value = Type() ) VULKAN_HPP_NOEXCEPT
1167     {
1168       if ( m_value != value )
1169       {
1170         if ( m_value ) this->destroy( m_value );
1171         m_value = value;
1172       }
1173     }
1174 
release()1175     Type release() VULKAN_HPP_NOEXCEPT
1176     {
1177       Type value = m_value;
1178       m_value = nullptr;
1179       return value;
1180     }
1181 
swap(UniqueHandle<Type,Dispatch> & rhs)1182     void swap( UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1183     {
1184       std::swap(m_value, rhs.m_value);
1185       std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs));
1186     }
1187 
1188   private:
1189     Type    m_value;
1190   };
1191 
1192   template <typename UniqueType>
uniqueToRaw(std::vector<UniqueType> const & handles)1193   VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw(std::vector<UniqueType> const& handles)
1194   {
1195     std::vector<typename UniqueType::element_type> newBuffer(handles.size());
1196     std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); });
1197     return newBuffer;
1198   }
1199 
1200   template <typename Type, typename Dispatch>
swap(UniqueHandle<Type,Dispatch> & lhs,UniqueHandle<Type,Dispatch> & rhs)1201   VULKAN_HPP_INLINE void swap( UniqueHandle<Type,Dispatch> & lhs, UniqueHandle<Type,Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1202   {
1203     lhs.swap( rhs );
1204   }
1205 #endif
1206 
1207 #if !defined(VK_NO_PROTOTYPES)
1208   class DispatchLoaderStatic
1209   {
1210   public:
1211 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const1212     VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
1213     {
1214       return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
1215     }
1216 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1217 
vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex) const1218     VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1219     {
1220       return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
1221     }
1222 
vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex) const1223     VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT
1224     {
1225       return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
1226     }
1227 
vkAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration) const1228     VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const VULKAN_HPP_NOEXCEPT
1229     {
1230       return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
1231     }
1232 
vkAcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo) const1233     VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1234     {
1235       return ::vkAcquireProfilingLockKHR( device, pInfo );
1236     }
1237 
1238 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display) const1239     VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
1240     {
1241       return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
1242     }
1243 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
1244 
vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers) const1245     VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1246     {
1247       return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
1248     }
1249 
vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets) const1250     VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1251     {
1252       return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
1253     }
1254 
vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory) const1255     VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const VULKAN_HPP_NOEXCEPT
1256     {
1257       return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
1258     }
1259 
vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo) const1260     VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const VULKAN_HPP_NOEXCEPT
1261     {
1262       return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
1263     }
1264 
1265 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkBindAccelerationStructureMemoryKHR(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos) const1266     VkResult vkBindAccelerationStructureMemoryKHR( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1267     {
1268       return ::vkBindAccelerationStructureMemoryKHR( device, bindInfoCount, pBindInfos );
1269     }
1270 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1271 
vkBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos) const1272     VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1273     {
1274       return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
1275     }
1276 
vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1277     VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1278     {
1279       return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
1280     }
1281 
vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1282     VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1283     {
1284       return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
1285     }
1286 
vkBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1287     VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1288     {
1289       return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
1290     }
1291 
vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1292     VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1293     {
1294       return ::vkBindImageMemory( device, image, memory, memoryOffset );
1295     }
1296 
vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1297     VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1298     {
1299       return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
1300     }
1301 
vkBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1302     VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT
1303     {
1304       return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
1305     }
1306 
1307 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkBuildAccelerationStructureKHR(VkDevice device,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos) const1308     VkResult vkBuildAccelerationStructureKHR( VkDevice device, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos ) const VULKAN_HPP_NOEXCEPT
1309     {
1310       return ::vkBuildAccelerationStructureKHR( device, infoCount, pInfos, ppOffsetInfos );
1311     }
1312 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1313 
vkCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin) const1314     void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
1315     {
1316       return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
1317     }
1318 
vkCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const1319     void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
1320     {
1321       return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
1322     }
1323 
vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags) const1324     void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
1325     {
1326       return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
1327     }
1328 
vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index) const1329     void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT
1330     {
1331       return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
1332     }
1333 
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents) const1334     void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1335     {
1336       return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
1337     }
1338 
vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const1339     void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
1340     {
1341       return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
1342     }
1343 
vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const1344     void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
1345     {
1346       return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
1347     }
1348 
vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const1349     void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
1350     {
1351       return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
1352     }
1353 
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets) const1354     void vkCmdBindDescriptorSets( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT
1355     {
1356       return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
1357     }
1358 
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType) const1359     void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT
1360     {
1361       return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
1362     }
1363 
vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline) const1364     void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
1365     {
1366       return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
1367     }
1368 
vkCmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex) const1369     void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT
1370     {
1371       return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex );
1372     }
1373 
vkCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const1374     void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
1375     {
1376       return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
1377     }
1378 
vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes) const1379     void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const VULKAN_HPP_NOEXCEPT
1380     {
1381       return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
1382     }
1383 
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets) const1384     void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const VULKAN_HPP_NOEXCEPT
1385     {
1386       return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
1387     }
1388 
vkCmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides) const1389     void vkCmdBindVertexBuffers2EXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides ) const VULKAN_HPP_NOEXCEPT
1390     {
1391       return ::vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
1392     }
1393 
vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter) const1394     void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const VULKAN_HPP_NOEXCEPT
1395     {
1396       return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
1397     }
1398 
vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2KHR * pBlitImageInfo) const1399     void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
1400     {
1401       return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo );
1402     }
1403 
1404 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdBuildAccelerationStructureIndirectKHR(VkCommandBuffer commandBuffer,const VkAccelerationStructureBuildGeometryInfoKHR * pInfo,VkBuffer indirectBuffer,VkDeviceSize indirectOffset,uint32_t indirectStride) const1405     void vkCmdBuildAccelerationStructureIndirectKHR( VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, uint32_t indirectStride ) const VULKAN_HPP_NOEXCEPT
1406     {
1407       return ::vkCmdBuildAccelerationStructureIndirectKHR( commandBuffer, pInfo, indirectBuffer, indirectOffset, indirectStride );
1408     }
1409 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1410 
1411 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdBuildAccelerationStructureKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos) const1412     void vkCmdBuildAccelerationStructureKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos ) const VULKAN_HPP_NOEXCEPT
1413     {
1414       return ::vkCmdBuildAccelerationStructureKHR( commandBuffer, infoCount, pInfos, ppOffsetInfos );
1415     }
1416 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1417 
vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureKHR dst,VkAccelerationStructureKHR src,VkBuffer scratch,VkDeviceSize scratchOffset) const1418     void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT
1419     {
1420       return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
1421     }
1422 
vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects) const1423     void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const VULKAN_HPP_NOEXCEPT
1424     {
1425       return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
1426     }
1427 
vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1428     void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1429     {
1430       return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
1431     }
1432 
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const1433     void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT
1434     {
1435       return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
1436     }
1437 
1438 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo) const1439     void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1440     {
1441       return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo );
1442     }
1443 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1444 
vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureKHR dst,VkAccelerationStructureKHR src,VkCopyAccelerationStructureModeKHR mode) const1445     void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
1446     {
1447       return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
1448     }
1449 
1450 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const1451     void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1452     {
1453       return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo );
1454     }
1455 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1456 
vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions) const1457     void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1458     {
1459       return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
1460     }
1461 
vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2KHR * pCopyBufferInfo) const1462     void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
1463     {
1464       return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo );
1465     }
1466 
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1467     void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1468     {
1469       return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
1470     }
1471 
vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2KHR * pCopyBufferToImageInfo) const1472     void vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
1473     {
1474       return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo );
1475     }
1476 
vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions) const1477     void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1478     {
1479       return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1480     }
1481 
vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2KHR * pCopyImageInfo) const1482     void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
1483     {
1484       return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo );
1485     }
1486 
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions) const1487     void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT
1488     {
1489       return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
1490     }
1491 
vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2KHR * pCopyImageToBufferInfo) const1492     void vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
1493     {
1494       return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo );
1495     }
1496 
1497 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const1498     void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1499     {
1500       return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo );
1501     }
1502 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1503 
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags) const1504     void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
1505     {
1506       return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
1507     }
1508 
vkCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1509     void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1510     {
1511       return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
1512     }
1513 
vkCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer) const1514     void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1515     {
1516       return ::vkCmdDebugMarkerEndEXT( commandBuffer );
1517     }
1518 
vkCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const1519     void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1520     {
1521       return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
1522     }
1523 
vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1524     void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
1525     {
1526       return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
1527     }
1528 
vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1529     void vkCmdDispatchBase( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
1530     {
1531       return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1532     }
1533 
vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const1534     void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
1535     {
1536       return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1537     }
1538 
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset) const1539     void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1540     {
1541       return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
1542     }
1543 
vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const1544     void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1545     {
1546       return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
1547     }
1548 
vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const1549     void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
1550     {
1551       return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
1552     }
1553 
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1554     void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1555     {
1556       return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
1557     }
1558 
vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1559     void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1560     {
1561       return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1562     }
1563 
vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1564     void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1565     {
1566       return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1567     }
1568 
vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1569     void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1570     {
1571       return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1572     }
1573 
vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1574     void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1575     {
1576       return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
1577     }
1578 
vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const1579     void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT
1580     {
1581       return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
1582     }
1583 
vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1584     void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1585     {
1586       return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1587     }
1588 
vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1589     void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1590     {
1591       return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1592     }
1593 
vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1594     void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1595     {
1596       return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1597     }
1598 
vkCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const1599     void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1600     {
1601       return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
1602     }
1603 
vkCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const1604     void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1605     {
1606       return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
1607     }
1608 
vkCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask) const1609     void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT
1610     {
1611       return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
1612     }
1613 
vkCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer) const1614     void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1615     {
1616       return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
1617     }
1618 
vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) const1619     void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1620     {
1621       return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
1622     }
1623 
vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query) const1624     void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1625     {
1626       return ::vkCmdEndQuery( commandBuffer, queryPool, query );
1627     }
1628 
vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index) const1629     void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT
1630     {
1631       return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
1632     }
1633 
vkCmdEndRenderPass(VkCommandBuffer commandBuffer) const1634     void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1635     {
1636       return ::vkCmdEndRenderPass( commandBuffer );
1637     }
1638 
vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1639     void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1640     {
1641       return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo );
1642     }
1643 
vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const1644     void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1645     {
1646       return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
1647     }
1648 
vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const1649     void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
1650     {
1651       return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
1652     }
1653 
vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const1654     void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1655     {
1656       return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
1657     }
1658 
vkCmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1659     void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1660     {
1661       return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
1662     }
1663 
vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data) const1664     void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT
1665     {
1666       return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
1667     }
1668 
vkCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const1669     void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
1670     {
1671       return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
1672     }
1673 
vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents) const1674     void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1675     {
1676       return ::vkCmdNextSubpass( commandBuffer, contents );
1677     }
1678 
vkCmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1679     void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1680     {
1681       return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1682     }
1683 
vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const1684     void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
1685     {
1686       return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
1687     }
1688 
vkCmdPipelineBarrier(VkCommandBuffer commandBuffer,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,VkDependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers) const1689     void vkCmdPipelineBarrier( VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
1690     {
1691       return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1692     }
1693 
vkCmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const1694     void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
1695     {
1696       return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo );
1697     }
1698 
vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues) const1699     void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const VULKAN_HPP_NOEXCEPT
1700     {
1701       return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
1702     }
1703 
vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites) const1704     void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT
1705     {
1706       return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
1707     }
1708 
vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData) const1709     void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const VULKAN_HPP_NOEXCEPT
1710     {
1711       return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
1712     }
1713 
vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1714     void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1715     {
1716       return ::vkCmdResetEvent( commandBuffer, event, stageMask );
1717     }
1718 
vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const1719     void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
1720     {
1721       return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
1722     }
1723 
vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions) const1724     void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const VULKAN_HPP_NOEXCEPT
1725     {
1726       return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1727     }
1728 
vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2KHR * pResolveImageInfo) const1729     void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
1730     {
1731       return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo );
1732     }
1733 
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4]) const1734     void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
1735     {
1736       return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
1737     }
1738 
vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker) const1739     void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT
1740     {
1741       return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
1742     }
1743 
vkCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders) const1744     void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT
1745     {
1746       return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
1747     }
1748 
vkCmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode) const1749     void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
1750     {
1751       return ::vkCmdSetCullModeEXT( commandBuffer, cullMode );
1752     }
1753 
vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const1754     void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
1755     {
1756       return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
1757     }
1758 
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds) const1759     void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
1760     {
1761       return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
1762     }
1763 
vkCmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable) const1764     void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
1765     {
1766       return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable );
1767     }
1768 
vkCmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp) const1769     void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
1770     {
1771       return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp );
1772     }
1773 
vkCmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable) const1774     void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
1775     {
1776       return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable );
1777     }
1778 
vkCmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable) const1779     void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
1780     {
1781       return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable );
1782     }
1783 
vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1784     void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1785     {
1786       return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
1787     }
1788 
vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask) const1789     void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1790     {
1791       return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
1792     }
1793 
vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles) const1794     void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT
1795     {
1796       return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
1797     }
1798 
vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1799     void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1800     {
1801       return ::vkCmdSetEvent( commandBuffer, event, stageMask );
1802     }
1803 
vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors) const1804     void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT
1805     {
1806       return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
1807     }
1808 
vkCmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer,VkFragmentShadingRateNV shadingRate,const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const1809     void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
1810     {
1811       return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps );
1812     }
1813 
vkCmdSetFragmentShadingRateKHR(VkCommandBuffer commandBuffer,const VkExtent2D * pFragmentSize,const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const1814     void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
1815     {
1816       return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps );
1817     }
1818 
vkCmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace) const1819     void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
1820     {
1821       return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace );
1822     }
1823 
vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern) const1824     void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
1825     {
1826       return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
1827     }
1828 
vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth) const1829     void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT
1830     {
1831       return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
1832     }
1833 
vkCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo) const1834     VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1835     {
1836       return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
1837     }
1838 
vkCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo) const1839     VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const VULKAN_HPP_NOEXCEPT
1840     {
1841       return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
1842     }
1843 
vkCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo) const1844     VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
1845     {
1846       return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
1847     }
1848 
vkCmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology) const1849     void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
1850     {
1851       return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology );
1852     }
1853 
vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo) const1854     void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
1855     {
1856       return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
1857     }
1858 
vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors) const1859     void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT
1860     {
1861       return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
1862     }
1863 
vkCmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors) const1864     void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT
1865     {
1866       return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors );
1867     }
1868 
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask) const1869     void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT
1870     {
1871       return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
1872     }
1873 
vkCmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp) const1874     void vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT
1875     {
1876       return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
1877     }
1878 
vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference) const1879     void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT
1880     {
1881       return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
1882     }
1883 
vkCmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable) const1884     void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
1885     {
1886       return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable );
1887     }
1888 
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask) const1889     void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT
1890     {
1891       return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
1892     }
1893 
vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports) const1894     void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT
1895     {
1896       return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
1897     }
1898 
vkCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes) const1899     void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT
1900     {
1901       return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
1902     }
1903 
vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings) const1904     void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const VULKAN_HPP_NOEXCEPT
1905     {
1906       return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
1907     }
1908 
vkCmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports) const1909     void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT
1910     {
1911       return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports );
1912     }
1913 
1914 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedBufferRegionKHR * pRaygenShaderBindingTable,const VkStridedBufferRegionKHR * pMissShaderBindingTable,const VkStridedBufferRegionKHR * pHitShaderBindingTable,const VkStridedBufferRegionKHR * pCallableShaderBindingTable,VkBuffer buffer,VkDeviceSize offset) const1915     void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1916     {
1917       return ::vkCmdTraceRaysIndirectKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, buffer, offset );
1918     }
1919 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1920 
1921 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdTraceRaysKHR(VkCommandBuffer commandBuffer,const VkStridedBufferRegionKHR * pRaygenShaderBindingTable,const VkStridedBufferRegionKHR * pMissShaderBindingTable,const VkStridedBufferRegionKHR * pHitShaderBindingTable,const VkStridedBufferRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth) const1922     void vkCmdTraceRaysKHR( VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT
1923     {
1924       return ::vkCmdTraceRaysKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
1925     }
1926 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1927 
vkCmdTraceRaysNV(VkCommandBuffer commandBuffer,VkBuffer raygenShaderBindingTableBuffer,VkDeviceSize raygenShaderBindingOffset,VkBuffer missShaderBindingTableBuffer,VkDeviceSize missShaderBindingOffset,VkDeviceSize missShaderBindingStride,VkBuffer hitShaderBindingTableBuffer,VkDeviceSize hitShaderBindingOffset,VkDeviceSize hitShaderBindingStride,VkBuffer callableShaderBindingTableBuffer,VkDeviceSize callableShaderBindingOffset,VkDeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth) const1928     void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT
1929     {
1930       return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth );
1931     }
1932 
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData) const1933     void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const VULKAN_HPP_NOEXCEPT
1934     {
1935       return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
1936     }
1937 
vkCmdWaitEvents(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers) const1938     void vkCmdWaitEvents( VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
1939     {
1940       return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1941     }
1942 
1943 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const1944     void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
1945     {
1946       return ::vkCmdWriteAccelerationStructuresPropertiesKHR( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
1947     }
1948 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1949 
vkCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const1950     void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
1951     {
1952       return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
1953     }
1954 
vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const1955     void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT
1956     {
1957       return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
1958     }
1959 
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query) const1960     void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1961     {
1962       return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
1963     }
1964 
vkCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader) const1965     VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT
1966     {
1967       return ::vkCompileDeferredNV( device, pipeline, shader );
1968     }
1969 
1970 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyAccelerationStructureKHR(VkDevice device,const VkCopyAccelerationStructureInfoKHR * pInfo) const1971     VkResult vkCopyAccelerationStructureKHR( VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1972     {
1973       return ::vkCopyAccelerationStructureKHR( device, pInfo );
1974     }
1975 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1976 
1977 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyAccelerationStructureToMemoryKHR(VkDevice device,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const1978     VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1979     {
1980       return ::vkCopyAccelerationStructureToMemoryKHR( device, pInfo );
1981     }
1982 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1983 
1984 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCopyMemoryToAccelerationStructureKHR(VkDevice device,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const1985     VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
1986     {
1987       return ::vkCopyMemoryToAccelerationStructureKHR( device, pInfo );
1988     }
1989 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1990 
1991 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure) const1992     VkResult vkCreateAccelerationStructureKHR( VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
1993     {
1994       return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure );
1995     }
1996 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1997 
vkCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure) const1998     VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
1999     {
2000       return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
2001     }
2002 
2003 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2004     VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2005     {
2006       return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2007     }
2008 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2009 
vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer) const2010     VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const VULKAN_HPP_NOEXCEPT
2011     {
2012       return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
2013     }
2014 
vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView) const2015     VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const VULKAN_HPP_NOEXCEPT
2016     {
2017       return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
2018     }
2019 
vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool) const2020     VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const VULKAN_HPP_NOEXCEPT
2021     {
2022       return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
2023     }
2024 
vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2025     VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2026     {
2027       return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2028     }
2029 
vkCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback) const2030     VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const VULKAN_HPP_NOEXCEPT
2031     {
2032       return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
2033     }
2034 
vkCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger) const2035     VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const VULKAN_HPP_NOEXCEPT
2036     {
2037       return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
2038     }
2039 
2040 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation) const2041     VkResult vkCreateDeferredOperationKHR( VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation ) const VULKAN_HPP_NOEXCEPT
2042     {
2043       return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation );
2044     }
2045 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2046 
vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool) const2047     VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const VULKAN_HPP_NOEXCEPT
2048     {
2049       return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
2050     }
2051 
vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout) const2052     VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const VULKAN_HPP_NOEXCEPT
2053     {
2054       return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
2055     }
2056 
vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2057     VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2058     {
2059       return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2060     }
2061 
vkCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2062     VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2063     {
2064       return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2065     }
2066 
vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice) const2067     VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const VULKAN_HPP_NOEXCEPT
2068     {
2069       return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
2070     }
2071 
2072 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
vkCreateDirectFBSurfaceEXT(VkInstance instance,const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2073     VkResult vkCreateDirectFBSurfaceEXT( VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2074     {
2075       return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2076     }
2077 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
2078 
vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode) const2079     VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const VULKAN_HPP_NOEXCEPT
2080     {
2081       return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
2082     }
2083 
vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2084     VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2085     {
2086       return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2087     }
2088 
vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent) const2089     VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const VULKAN_HPP_NOEXCEPT
2090     {
2091       return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
2092     }
2093 
vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const2094     VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
2095     {
2096       return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
2097     }
2098 
vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer) const2099     VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const VULKAN_HPP_NOEXCEPT
2100     {
2101       return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
2102     }
2103 
vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2104     VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2105     {
2106       return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2107     }
2108 
vkCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2109     VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2110     {
2111       return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2112     }
2113 
2114 #ifdef VK_USE_PLATFORM_IOS_MVK
vkCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2115     VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2116     {
2117       return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2118     }
2119 #endif /*VK_USE_PLATFORM_IOS_MVK*/
2120 
vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage) const2121     VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const VULKAN_HPP_NOEXCEPT
2122     {
2123       return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
2124     }
2125 
2126 #ifdef VK_USE_PLATFORM_FUCHSIA
vkCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2127     VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2128     {
2129       return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
2130     }
2131 #endif /*VK_USE_PLATFORM_FUCHSIA*/
2132 
vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView) const2133     VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const VULKAN_HPP_NOEXCEPT
2134     {
2135       return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
2136     }
2137 
vkCreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout) const2138     VkResult vkCreateIndirectCommandsLayoutNV( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
2139     {
2140       return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
2141     }
2142 
vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance) const2143     VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const VULKAN_HPP_NOEXCEPT
2144     {
2145       return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
2146     }
2147 
2148 #ifdef VK_USE_PLATFORM_MACOS_MVK
vkCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2149     VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2150     {
2151       return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2152     }
2153 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
2154 
2155 #ifdef VK_USE_PLATFORM_METAL_EXT
vkCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2156     VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2157     {
2158       return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2159     }
2160 #endif /*VK_USE_PLATFORM_METAL_EXT*/
2161 
vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache) const2162     VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const VULKAN_HPP_NOEXCEPT
2163     {
2164       return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
2165     }
2166 
vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout) const2167     VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const VULKAN_HPP_NOEXCEPT
2168     {
2169       return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
2170     }
2171 
vkCreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlotEXT * pPrivateDataSlot) const2172     VkResult vkCreatePrivateDataSlotEXT( VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
2173     {
2174       return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot );
2175     }
2176 
vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool) const2177     VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const VULKAN_HPP_NOEXCEPT
2178     {
2179       return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
2180     }
2181 
2182 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkCreateRayTracingPipelinesKHR(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2183     VkResult vkCreateRayTracingPipelinesKHR( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2184     {
2185       return ::vkCreateRayTracingPipelinesKHR( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2186     }
2187 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2188 
vkCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const2189     VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT
2190     {
2191       return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
2192     }
2193 
vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2194     VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2195     {
2196       return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
2197     }
2198 
vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2199     VkResult vkCreateRenderPass2( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2200     {
2201       return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass );
2202     }
2203 
vkCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2204     VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT
2205     {
2206       return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
2207     }
2208 
vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler) const2209     VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const VULKAN_HPP_NOEXCEPT
2210     {
2211       return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
2212     }
2213 
vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2214     VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2215     {
2216       return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
2217     }
2218 
vkCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2219     VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2220     {
2221       return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
2222     }
2223 
vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore) const2224     VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const VULKAN_HPP_NOEXCEPT
2225     {
2226       return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
2227     }
2228 
vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule) const2229     VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const VULKAN_HPP_NOEXCEPT
2230     {
2231       return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
2232     }
2233 
vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains) const2234     VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const VULKAN_HPP_NOEXCEPT
2235     {
2236       return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
2237     }
2238 
2239 #ifdef VK_USE_PLATFORM_GGP
vkCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2240     VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2241     {
2242       return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
2243     }
2244 #endif /*VK_USE_PLATFORM_GGP*/
2245 
vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain) const2246     VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const VULKAN_HPP_NOEXCEPT
2247     {
2248       return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
2249     }
2250 
vkCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache) const2251     VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const VULKAN_HPP_NOEXCEPT
2252     {
2253       return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
2254     }
2255 
2256 #ifdef VK_USE_PLATFORM_VI_NN
vkCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2257     VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2258     {
2259       return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
2260     }
2261 #endif /*VK_USE_PLATFORM_VI_NN*/
2262 
2263 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2264     VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2265     {
2266       return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2267     }
2268 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
2269 
2270 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2271     VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2272     {
2273       return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2274     }
2275 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2276 
2277 #ifdef VK_USE_PLATFORM_XCB_KHR
vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2278     VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2279     {
2280       return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2281     }
2282 #endif /*VK_USE_PLATFORM_XCB_KHR*/
2283 
2284 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2285     VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT
2286     {
2287       return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2288     }
2289 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
2290 
vkDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo) const2291     VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
2292     {
2293       return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
2294     }
2295 
vkDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo) const2296     VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
2297     {
2298       return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
2299     }
2300 
vkDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage) const2301     void vkDebugReportMessageEXT( VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage ) const VULKAN_HPP_NOEXCEPT
2302     {
2303       return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
2304     }
2305 
2306 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation) const2307     VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2308     {
2309       return ::vkDeferredOperationJoinKHR( device, operation );
2310     }
2311 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2312 
2313 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const2314     void vkDestroyAccelerationStructureKHR( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2315     {
2316       return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator );
2317     }
2318 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2319 
vkDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const2320     void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2321     {
2322       return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
2323     }
2324 
vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator) const2325     void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2326     {
2327       return ::vkDestroyBuffer( device, buffer, pAllocator );
2328     }
2329 
vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator) const2330     void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2331     {
2332       return ::vkDestroyBufferView( device, bufferView, pAllocator );
2333     }
2334 
vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator) const2335     void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2336     {
2337       return ::vkDestroyCommandPool( device, commandPool, pAllocator );
2338     }
2339 
vkDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator) const2340     void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2341     {
2342       return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
2343     }
2344 
vkDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator) const2345     void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2346     {
2347       return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
2348     }
2349 
2350 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkDestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator) const2351     void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2352     {
2353       return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator );
2354     }
2355 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2356 
vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator) const2357     void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2358     {
2359       return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
2360     }
2361 
vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator) const2362     void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2363     {
2364       return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
2365     }
2366 
vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2367     void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2368     {
2369       return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
2370     }
2371 
vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2372     void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2373     {
2374       return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
2375     }
2376 
vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator) const2377     void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2378     {
2379       return ::vkDestroyDevice( device, pAllocator );
2380     }
2381 
vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator) const2382     void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2383     {
2384       return ::vkDestroyEvent( device, event, pAllocator );
2385     }
2386 
vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator) const2387     void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2388     {
2389       return ::vkDestroyFence( device, fence, pAllocator );
2390     }
2391 
vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator) const2392     void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2393     {
2394       return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
2395     }
2396 
vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator) const2397     void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2398     {
2399       return ::vkDestroyImage( device, image, pAllocator );
2400     }
2401 
vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator) const2402     void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2403     {
2404       return ::vkDestroyImageView( device, imageView, pAllocator );
2405     }
2406 
vkDestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator) const2407     void vkDestroyIndirectCommandsLayoutNV( VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2408     {
2409       return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
2410     }
2411 
vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator) const2412     void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2413     {
2414       return ::vkDestroyInstance( instance, pAllocator );
2415     }
2416 
vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator) const2417     void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2418     {
2419       return ::vkDestroyPipeline( device, pipeline, pAllocator );
2420     }
2421 
vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator) const2422     void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2423     {
2424       return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
2425     }
2426 
vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator) const2427     void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2428     {
2429       return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
2430     }
2431 
vkDestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlotEXT privateDataSlot,const VkAllocationCallbacks * pAllocator) const2432     void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2433     {
2434       return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator );
2435     }
2436 
vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator) const2437     void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2438     {
2439       return ::vkDestroyQueryPool( device, queryPool, pAllocator );
2440     }
2441 
vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator) const2442     void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2443     {
2444       return ::vkDestroyRenderPass( device, renderPass, pAllocator );
2445     }
2446 
vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator) const2447     void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2448     {
2449       return ::vkDestroySampler( device, sampler, pAllocator );
2450     }
2451 
vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2452     void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2453     {
2454       return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
2455     }
2456 
vkDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2457     void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2458     {
2459       return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
2460     }
2461 
vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator) const2462     void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2463     {
2464       return ::vkDestroySemaphore( device, semaphore, pAllocator );
2465     }
2466 
vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator) const2467     void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2468     {
2469       return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
2470     }
2471 
vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator) const2472     void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2473     {
2474       return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
2475     }
2476 
vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator) const2477     void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2478     {
2479       return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
2480     }
2481 
vkDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator) const2482     void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2483     {
2484       return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
2485     }
2486 
vkDeviceWaitIdle(VkDevice device) const2487     VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT
2488     {
2489       return ::vkDeviceWaitIdle( device );
2490     }
2491 
vkDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo) const2492     VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT
2493     {
2494       return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
2495     }
2496 
vkEndCommandBuffer(VkCommandBuffer commandBuffer) const2497     VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2498     {
2499       return ::vkEndCommandBuffer( commandBuffer );
2500     }
2501 
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2502     VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2503     {
2504       return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
2505     }
2506 
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2507     VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2508     {
2509       return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
2510     }
2511 
vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2512     VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2513     {
2514       return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
2515     }
2516 
vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2517     VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
2518     {
2519       return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
2520     }
2521 
vkEnumerateInstanceVersion(uint32_t * pApiVersion) const2522     VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const VULKAN_HPP_NOEXCEPT
2523     {
2524       return ::vkEnumerateInstanceVersion( pApiVersion );
2525     }
2526 
vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2527     VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2528     {
2529       return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2530     }
2531 
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2532     VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2533     {
2534       return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2535     }
2536 
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions) const2537     VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT
2538     {
2539       return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions );
2540     }
2541 
vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices) const2542     VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT
2543     {
2544       return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
2545     }
2546 
vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const2547     VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
2548     {
2549       return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
2550     }
2551 
vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const2552     void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
2553     {
2554       return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
2555     }
2556 
vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets) const2557     VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
2558     {
2559       return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
2560     }
2561 
vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator) const2562     void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT
2563     {
2564       return ::vkFreeMemory( device, memory, pAllocator );
2565     }
2566 
2567 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo) const2568     VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT
2569     {
2570       return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo );
2571     }
2572 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2573 
vkGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureKHR accelerationStructure,size_t dataSize,void * pData) const2574     VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
2575     {
2576       return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
2577     }
2578 
2579 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetAccelerationStructureMemoryRequirementsKHR(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoKHR * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2580     void vkGetAccelerationStructureMemoryRequirementsKHR( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2581     {
2582       return ::vkGetAccelerationStructureMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
2583     }
2584 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2585 
vkGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements) const2586     void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2587     {
2588       return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2589     }
2590 
2591 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties) const2592     VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const VULKAN_HPP_NOEXCEPT
2593     {
2594       return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
2595     }
2596 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2597 
vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2598     VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2599     {
2600       return ::vkGetBufferDeviceAddress( device, pInfo );
2601     }
2602 
vkGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2603     VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2604     {
2605       return ::vkGetBufferDeviceAddressEXT( device, pInfo );
2606     }
2607 
vkGetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2608     VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2609     {
2610       return ::vkGetBufferDeviceAddressKHR( device, pInfo );
2611     }
2612 
vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements) const2613     void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2614     {
2615       return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
2616     }
2617 
vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2618     void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2619     {
2620       return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
2621     }
2622 
vkGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2623     void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2624     {
2625       return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2626     }
2627 
vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2628     uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2629     {
2630       return ::vkGetBufferOpaqueCaptureAddress( device, pInfo );
2631     }
2632 
vkGetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2633     uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2634     {
2635       return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo );
2636     }
2637 
vkGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation) const2638     VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
2639     {
2640       return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
2641     }
2642 
2643 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation) const2644     uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2645     {
2646       return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation );
2647     }
2648 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2649 
2650 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation) const2651     VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
2652     {
2653       return ::vkGetDeferredOperationResultKHR( device, operation );
2654     }
2655 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2656 
vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2657     void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2658     {
2659       return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
2660     }
2661 
vkGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2662     void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT
2663     {
2664       return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
2665     }
2666 
2667 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionKHR * version) const2668     VkResult vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice device, const VkAccelerationStructureVersionKHR* version ) const VULKAN_HPP_NOEXCEPT
2669     {
2670       return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, version );
2671     }
2672 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2673 
vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2674     void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2675     {
2676       return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2677     }
2678 
vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2679     void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2680     {
2681       return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2682     }
2683 
vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities) const2684     VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT
2685     {
2686       return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
2687     }
2688 
2689 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes) const2690     VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2691     {
2692       return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
2693     }
2694 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2695 
vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes) const2696     VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT
2697     {
2698       return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
2699     }
2700 
vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes) const2701     void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT
2702     {
2703       return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
2704     }
2705 
vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2706     uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2707     {
2708       return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo );
2709     }
2710 
vkGetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2711     uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT
2712     {
2713       return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo );
2714     }
2715 
vkGetDeviceProcAddr(VkDevice device,const char * pName) const2716     PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT
2717     {
2718       return ::vkGetDeviceProcAddr( device, pName );
2719     }
2720 
vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue) const2721     void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2722     {
2723       return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
2724     }
2725 
vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue) const2726     void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT
2727     {
2728       return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
2729     }
2730 
vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties) const2731     VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2732     {
2733       return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
2734     }
2735 
vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties) const2736     VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2737     {
2738       return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
2739     }
2740 
vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities) const2741     VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2742     {
2743       return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
2744     }
2745 
vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities) const2746     VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT
2747     {
2748       return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
2749     }
2750 
vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays) const2751     VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const VULKAN_HPP_NOEXCEPT
2752     {
2753       return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
2754     }
2755 
vkGetEventStatus(VkDevice device,VkEvent event) const2756     VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
2757     {
2758       return ::vkGetEventStatus( device, event );
2759     }
2760 
vkGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd) const2761     VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2762     {
2763       return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
2764     }
2765 
vkGetFenceStatus(VkDevice device,VkFence fence) const2766     VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT
2767     {
2768       return ::vkGetFenceStatus( device, fence );
2769     }
2770 
2771 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2772     VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2773     {
2774       return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2775     }
2776 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2777 
vkGetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2778     void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2779     {
2780       return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
2781     }
2782 
vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties) const2783     VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const VULKAN_HPP_NOEXCEPT
2784     {
2785       return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
2786     }
2787 
vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements) const2788     void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2789     {
2790       return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
2791     }
2792 
vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2793     void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2794     {
2795       return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
2796     }
2797 
vkGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2798     void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2799     {
2800       return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
2801     }
2802 
vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements) const2803     void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2804     {
2805       return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2806     }
2807 
vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2808     void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2809     {
2810       return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2811     }
2812 
vkGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2813     void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2814     {
2815       return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2816     }
2817 
vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout) const2818     void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const VULKAN_HPP_NOEXCEPT
2819     {
2820       return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
2821     }
2822 
vkGetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties) const2823     VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties ) const VULKAN_HPP_NOEXCEPT
2824     {
2825       return ::vkGetImageViewAddressNVX( device, imageView, pProperties );
2826     }
2827 
vkGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo) const2828     uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const VULKAN_HPP_NOEXCEPT
2829     {
2830       return ::vkGetImageViewHandleNVX( device, pInfo );
2831     }
2832 
vkGetInstanceProcAddr(VkInstance instance,const char * pName) const2833     PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT
2834     {
2835       return ::vkGetInstanceProcAddr( instance, pName );
2836     }
2837 
2838 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer) const2839     VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const VULKAN_HPP_NOEXCEPT
2840     {
2841       return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
2842     }
2843 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2844 
vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd) const2845     VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
2846     {
2847       return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
2848     }
2849 
vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties) const2850     VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT
2851     {
2852       return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
2853     }
2854 
vkGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties) const2855     VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT
2856     {
2857       return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
2858     }
2859 
2860 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const2861     VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2862     {
2863       return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
2864     }
2865 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2866 
2867 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle) const2868     VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
2869     {
2870       return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
2871     }
2872 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2873 
2874 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties) const2875     VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT
2876     {
2877       return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
2878     }
2879 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2880 
vkGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings) const2881     VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const VULKAN_HPP_NOEXCEPT
2882     {
2883       return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
2884     }
2885 
vkGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue) const2886     VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const VULKAN_HPP_NOEXCEPT
2887     {
2888       return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
2889     }
2890 
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains) const2891     VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const VULKAN_HPP_NOEXCEPT
2892     {
2893       return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
2894     }
2895 
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties) const2896     VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const VULKAN_HPP_NOEXCEPT
2897     {
2898       return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
2899     }
2900 
2901 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
vkGetPhysicalDeviceDirectFBPresentationSupportEXT(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,IDirectFB * dfb) const2902     VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb ) const VULKAN_HPP_NOEXCEPT
2903     {
2904       return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb );
2905     }
2906 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
2907 
vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties) const2908     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2909     {
2910       return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2911     }
2912 
vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties) const2913     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2914     {
2915       return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2916     }
2917 
vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayProperties2KHR * pProperties) const2918     VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2919     {
2920       return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2921     }
2922 
vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties) const2923     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
2924     {
2925       return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2926     }
2927 
vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2928     void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2929     {
2930       return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2931     }
2932 
vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2933     void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2934     {
2935       return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2936     }
2937 
vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2938     void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2939     {
2940       return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2941     }
2942 
vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2943     void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2944     {
2945       return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2946     }
2947 
vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties) const2948     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2949     {
2950       return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
2951     }
2952 
vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2953     void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2954     {
2955       return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2956     }
2957 
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2958     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2959     {
2960       return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2961     }
2962 
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures) const2963     void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const VULKAN_HPP_NOEXCEPT
2964     {
2965       return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
2966     }
2967 
vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2968     void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
2969     {
2970       return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
2971     }
2972 
vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2973     void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT
2974     {
2975       return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
2976     }
2977 
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties) const2978     void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2979     {
2980       return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
2981     }
2982 
vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2983     void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2984     {
2985       return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
2986     }
2987 
vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2988     void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2989     {
2990       return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
2991     }
2992 
vkGetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates) const2993     VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT
2994     {
2995       return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates );
2996     }
2997 
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties) const2998     VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2999     {
3000       return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
3001     }
3002 
vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const3003     VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3004     {
3005       return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
3006     }
3007 
vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const3008     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3009     {
3010       return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
3011     }
3012 
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties) const3013     void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3014     {
3015       return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
3016     }
3017 
vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3018     void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3019     {
3020       return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
3021     }
3022 
vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3023     void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3024     {
3025       return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
3026     }
3027 
vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties) const3028     void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT
3029     {
3030       return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
3031     }
3032 
vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects) const3033     VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const VULKAN_HPP_NOEXCEPT
3034     {
3035       return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
3036     }
3037 
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties) const3038     void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
3039     {
3040       return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
3041     }
3042 
vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3043     void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3044     {
3045       return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
3046     }
3047 
vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3048     void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3049     {
3050       return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
3051     }
3052 
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses) const3053     void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses ) const VULKAN_HPP_NOEXCEPT
3054     {
3055       return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses );
3056     }
3057 
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties) const3058     void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3059     {
3060       return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3061     }
3062 
vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3063     void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3064     {
3065       return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3066     }
3067 
vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3068     void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3069     {
3070       return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3071     }
3072 
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties) const3073     void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const VULKAN_HPP_NOEXCEPT
3074     {
3075       return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
3076     }
3077 
vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3078     void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3079     {
3080       return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3081     }
3082 
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3083     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT
3084     {
3085       return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3086     }
3087 
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations) const3088     VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const VULKAN_HPP_NOEXCEPT
3089     {
3090       return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
3091     }
3092 
vkGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities) const3093     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3094     {
3095       return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
3096     }
3097 
vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities) const3098     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3099     {
3100       return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
3101     }
3102 
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities) const3103     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3104     {
3105       return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
3106     }
3107 
vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats) const3108     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3109     {
3110       return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
3111     }
3112 
vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats) const3113     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3114     {
3115       return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
3116     }
3117 
3118 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3119     VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3120     {
3121       return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
3122     }
3123 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3124 
vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const3125     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT
3126     {
3127       return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
3128     }
3129 
vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported) const3130     VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const VULKAN_HPP_NOEXCEPT
3131     {
3132       return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
3133     }
3134 
vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolPropertiesEXT * pToolProperties) const3135     VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties ) const VULKAN_HPP_NOEXCEPT
3136     {
3137       return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
3138     }
3139 
3140 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct wl_display * display) const3141     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const VULKAN_HPP_NOEXCEPT
3142     {
3143       return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
3144     }
3145 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
3146 
3147 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex) const3148     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
3149     {
3150       return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
3151     }
3152 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3153 
3154 #ifdef VK_USE_PLATFORM_XCB_KHR
vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id) const3155     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT
3156     {
3157       return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
3158     }
3159 #endif /*VK_USE_PLATFORM_XCB_KHR*/
3160 
3161 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID) const3162     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT
3163     {
3164       return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
3165     }
3166 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
3167 
vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData) const3168     VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3169     {
3170       return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
3171     }
3172 
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations) const3173     VkResult vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT
3174     {
3175       return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
3176     }
3177 
vkGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties) const3178     VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT
3179     {
3180       return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
3181     }
3182 
vkGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics) const3183     VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) const VULKAN_HPP_NOEXCEPT
3184     {
3185       return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
3186     }
3187 
vkGetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t * pData) const3188     void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData ) const VULKAN_HPP_NOEXCEPT
3189     {
3190       return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
3191     }
3192 
vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags) const3193     VkResult vkGetQueryPoolResults( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
3194     {
3195       return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
3196     }
3197 
vkGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData) const3198     void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT
3199     {
3200       return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
3201     }
3202 
3203 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay) const3204     VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT
3205     {
3206       return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
3207     }
3208 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
3209 
3210 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3211     VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3212     {
3213       return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3214     }
3215 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3216 
3217 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkGetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3218     VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3219     {
3220       return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3221     }
3222 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3223 
vkGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const3224     VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3225     {
3226       return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
3227     }
3228 
vkGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties) const3229     VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT
3230     {
3231       return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
3232     }
3233 
vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity) const3234     void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const VULKAN_HPP_NOEXCEPT
3235     {
3236       return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
3237     }
3238 
vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const3239     VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
3240     {
3241       return ::vkGetSemaphoreCounterValue( device, semaphore, pValue );
3242     }
3243 
vkGetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const3244     VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT
3245     {
3246       return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue );
3247     }
3248 
vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd) const3249     VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT
3250     {
3251       return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
3252     }
3253 
3254 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3255     VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT
3256     {
3257       return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3258     }
3259 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3260 
vkGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo) const3261     VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const VULKAN_HPP_NOEXCEPT
3262     {
3263       return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
3264     }
3265 
vkGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue) const3266     VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const VULKAN_HPP_NOEXCEPT
3267     {
3268       return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
3269     }
3270 
vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages) const3271     VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const VULKAN_HPP_NOEXCEPT
3272     {
3273       return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
3274     }
3275 
vkGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain) const3276     VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3277     {
3278       return ::vkGetSwapchainStatusKHR( device, swapchain );
3279     }
3280 
vkGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData) const3281     VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT
3282     {
3283       return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
3284     }
3285 
vkImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo) const3286     VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT
3287     {
3288       return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
3289     }
3290 
3291 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo) const3292     VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3293     {
3294       return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
3295     }
3296 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3297 
vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo) const3298     VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT
3299     {
3300       return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
3301     }
3302 
3303 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo) const3304     VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3305     {
3306       return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
3307     }
3308 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3309 
vkInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo) const3310     VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const VULKAN_HPP_NOEXCEPT
3311     {
3312       return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
3313     }
3314 
vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const3315     VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
3316     {
3317       return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
3318     }
3319 
vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData) const3320     VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const VULKAN_HPP_NOEXCEPT
3321     {
3322       return ::vkMapMemory( device, memory, offset, size, flags, ppData );
3323     }
3324 
vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches) const3325     VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
3326     {
3327       return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
3328     }
3329 
vkMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches) const3330     VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const VULKAN_HPP_NOEXCEPT
3331     {
3332       return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
3333     }
3334 
vkQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3335     void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3336     {
3337       return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
3338     }
3339 
vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence) const3340     VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3341     {
3342       return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
3343     }
3344 
vkQueueEndDebugUtilsLabelEXT(VkQueue queue) const3345     void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3346     {
3347       return ::vkQueueEndDebugUtilsLabelEXT( queue );
3348     }
3349 
vkQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3350     void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3351     {
3352       return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
3353     }
3354 
vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo) const3355     VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const VULKAN_HPP_NOEXCEPT
3356     {
3357       return ::vkQueuePresentKHR( queue, pPresentInfo );
3358     }
3359 
vkQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration) const3360     VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
3361     {
3362       return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
3363     }
3364 
vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence) const3365     VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
3366     {
3367       return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
3368     }
3369 
vkQueueWaitIdle(VkQueue queue) const3370     VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3371     {
3372       return ::vkQueueWaitIdle( queue );
3373     }
3374 
vkRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3375     VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
3376     {
3377       return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
3378     }
3379 
vkRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3380     VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT
3381     {
3382       return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
3383     }
3384 
vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const3385     VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3386     {
3387       return ::vkReleaseDisplayEXT( physicalDevice, display );
3388     }
3389 
3390 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const3391     VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3392     {
3393       return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
3394     }
3395 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
3396 
vkReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration) const3397     VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
3398     {
3399       return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
3400     }
3401 
vkReleaseProfilingLockKHR(VkDevice device) const3402     void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3403     {
3404       return ::vkReleaseProfilingLockKHR( device );
3405     }
3406 
vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags) const3407     VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3408     {
3409       return ::vkResetCommandBuffer( commandBuffer, flags );
3410     }
3411 
vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags) const3412     VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3413     {
3414       return ::vkResetCommandPool( device, commandPool, flags );
3415     }
3416 
vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags) const3417     VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
3418     {
3419       return ::vkResetDescriptorPool( device, descriptorPool, flags );
3420     }
3421 
vkResetEvent(VkDevice device,VkEvent event) const3422     VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
3423     {
3424       return ::vkResetEvent( device, event );
3425     }
3426 
vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences) const3427     VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const VULKAN_HPP_NOEXCEPT
3428     {
3429       return ::vkResetFences( device, fenceCount, pFences );
3430     }
3431 
vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const3432     void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
3433     {
3434       return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount );
3435     }
3436 
vkResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const3437     void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
3438     {
3439       return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
3440     }
3441 
vkSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo) const3442     VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT
3443     {
3444       return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
3445     }
3446 
vkSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo) const3447     VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT
3448     {
3449       return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
3450     }
3451 
vkSetEvent(VkDevice device,VkEvent event) const3452     VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
3453     {
3454       return ::vkSetEvent( device, event );
3455     }
3456 
vkSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata) const3457     void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const VULKAN_HPP_NOEXCEPT
3458     {
3459       return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
3460     }
3461 
vkSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable) const3462     void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
3463     {
3464       return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
3465     }
3466 
vkSetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t data) const3467     VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data ) const VULKAN_HPP_NOEXCEPT
3468     {
3469       return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data );
3470     }
3471 
vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const3472     VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
3473     {
3474       return ::vkSignalSemaphore( device, pSignalInfo );
3475     }
3476 
vkSignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const3477     VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT
3478     {
3479       return ::vkSignalSemaphoreKHR( device, pSignalInfo );
3480     }
3481 
vkSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData) const3482     void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const VULKAN_HPP_NOEXCEPT
3483     {
3484       return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
3485     }
3486 
vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3487     void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3488     {
3489       return ::vkTrimCommandPool( device, commandPool, flags );
3490     }
3491 
vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3492     void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3493     {
3494       return ::vkTrimCommandPoolKHR( device, commandPool, flags );
3495     }
3496 
vkUninitializePerformanceApiINTEL(VkDevice device) const3497     void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3498     {
3499       return ::vkUninitializePerformanceApiINTEL( device );
3500     }
3501 
vkUnmapMemory(VkDevice device,VkDeviceMemory memory) const3502     void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT
3503     {
3504       return ::vkUnmapMemory( device, memory );
3505     }
3506 
vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3507     void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
3508     {
3509       return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
3510     }
3511 
vkUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3512     void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT
3513     {
3514       return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
3515     }
3516 
vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies) const3517     void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT
3518     {
3519       return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
3520     }
3521 
vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout) const3522     VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3523     {
3524       return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
3525     }
3526 
vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const3527     VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3528     {
3529       return ::vkWaitSemaphores( device, pWaitInfo, timeout );
3530     }
3531 
vkWaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const3532     VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
3533     {
3534       return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout );
3535     }
3536 
3537 #ifdef VK_ENABLE_BETA_EXTENSIONS
vkWriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride) const3538     VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride ) const VULKAN_HPP_NOEXCEPT
3539     {
3540       return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride );
3541     }
3542 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3543   };
3544 #endif
3545 
3546   class DispatchLoaderDynamic;
3547 #if !defined(VULKAN_HPP_DISPATCH_LOADER_DYNAMIC)
3548 # if defined(VK_NO_PROTOTYPES)
3549 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
3550 # else
3551 #  define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
3552 # endif
3553 #endif
3554 
3555 #if defined(_WIN32) && defined(VULKAN_HPP_STORAGE_SHARED)
3556 #  ifdef VULKAN_HPP_STORAGE_SHARED_EXPORT
3557 #    define VULKAN_HPP_STORAGE_API __declspec( dllexport )
3558 #  else
3559 #    define VULKAN_HPP_STORAGE_API __declspec( dllimport )
3560 #  endif
3561 #else
3562 #  define VULKAN_HPP_STORAGE_API
3563 #endif
3564 
3565 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER)
3566 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3567 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
3568 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE namespace VULKAN_HPP_NAMESPACE { VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; }
3569   extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
3570 # else
3571 #  define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic()
3572 #  define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
3573 # endif
3574 #endif
3575 
3576 #if !defined(VULKAN_HPP_DEFAULT_DISPATCHER_TYPE)
3577 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
3578   #define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
3579 # else
3580 #  define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
3581 # endif
3582 #endif
3583 
3584 #if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
3585 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
3586 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
3587 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
3588 #else
3589 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {}
3590 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
3591 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER
3592 #endif
3593 
3594   struct AllocationCallbacks;
3595 
3596   template <typename OwnerType, typename Dispatch>
3597   class ObjectDestroy
3598   {
3599     public:
3600     ObjectDestroy() = default;
3601 
ObjectDestroy(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3602     ObjectDestroy( OwnerType owner,
3603                    Optional<const AllocationCallbacks> allocationCallbacks
3604                                     VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
3605                    Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3606       : m_owner( owner )
3607       , m_allocationCallbacks( allocationCallbacks )
3608       , m_dispatch( &dispatch )
3609     {}
3610 
getOwner() const3611       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getAllocator() const3612       Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3613 
3614     protected:
3615       template <typename T>
destroy(T t)3616       void destroy(T t) VULKAN_HPP_NOEXCEPT
3617       {
3618         VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3619         m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
3620       }
3621 
3622     private:
3623     OwnerType                           m_owner               = {};
3624     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3625     Dispatch const *                    m_dispatch            = nullptr;
3626   };
3627 
3628   class NoParent;
3629 
3630   template <typename Dispatch>
3631   class ObjectDestroy<NoParent,Dispatch>
3632   {
3633     public:
3634     ObjectDestroy() = default;
3635 
ObjectDestroy(Optional<const AllocationCallbacks> allocationCallbacks,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3636     ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks,
3637                    Dispatch const &                    dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3638       : m_allocationCallbacks( allocationCallbacks )
3639       , m_dispatch( &dispatch )
3640     {}
3641 
getAllocator() const3642       Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; }
3643 
3644     protected:
3645       template <typename T>
destroy(T t)3646       void destroy(T t) VULKAN_HPP_NOEXCEPT
3647       {
3648         VULKAN_HPP_ASSERT( m_dispatch );
3649         t.destroy( m_allocationCallbacks, *m_dispatch );
3650       }
3651 
3652     private:
3653     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3654     Dispatch const *                    m_dispatch            = nullptr;
3655   };
3656 
3657   template <typename OwnerType, typename Dispatch>
3658   class ObjectFree
3659   {
3660   public:
3661     ObjectFree() = default;
3662 
ObjectFree(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3663     ObjectFree( OwnerType                                               owner,
3664                 Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
3665                 Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3666       : m_owner( owner )
3667       , m_allocationCallbacks( allocationCallbacks )
3668       , m_dispatch( &dispatch )
3669     {}
3670 
getOwner() const3671     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
3672     {
3673       return m_owner;
3674     }
3675 
getAllocator() const3676     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
3677     {
3678       return m_allocationCallbacks;
3679     }
3680 
3681   protected:
3682     template <typename T>
destroy(T t)3683     void destroy( T t ) VULKAN_HPP_NOEXCEPT
3684     {
3685       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3686       m_owner.free( t, m_allocationCallbacks, *m_dispatch );
3687     }
3688 
3689   private:
3690     OwnerType                           m_owner               = {};
3691     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
3692     Dispatch const *                    m_dispatch            = nullptr;
3693   };
3694 
3695   template <typename OwnerType, typename Dispatch>
3696   class ObjectRelease
3697   {
3698   public:
3699     ObjectRelease() = default;
3700 
ObjectRelease(OwnerType owner,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3701     ObjectRelease( OwnerType owner, Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3702       : m_owner( owner )
3703       , m_dispatch( &dispatch )
3704     {}
3705 
getOwner() const3706     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
3707     {
3708       return m_owner;
3709     }
3710 
3711   protected:
3712     template <typename T>
destroy(T t)3713     void destroy( T t ) VULKAN_HPP_NOEXCEPT
3714     {
3715       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
3716       m_owner.release( t, *m_dispatch );
3717     }
3718 
3719   private:
3720     OwnerType        m_owner    = {};
3721     Dispatch const * m_dispatch = nullptr;
3722   };
3723 
3724   template <typename OwnerType, typename PoolType, typename Dispatch>
3725   class PoolFree
3726   {
3727     public:
3728       PoolFree() = default;
3729 
PoolFree(OwnerType owner,PoolType pool,Dispatch const & dispatch=VULKAN_HPP_DEFAULT_DISPATCHER)3730       PoolFree( OwnerType        owner,
3731                 PoolType         pool,
3732                 Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT
3733         : m_owner( owner )
3734         , m_pool( pool )
3735         , m_dispatch( &dispatch )
3736       {}
3737 
getOwner() const3738       OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; }
getPool() const3739       PoolType getPool() const VULKAN_HPP_NOEXCEPT { return m_pool; }
3740 
3741     protected:
3742       template <typename T>
destroy(T t)3743       void destroy(T t) VULKAN_HPP_NOEXCEPT
3744       {
3745         m_owner.free( m_pool, t, *m_dispatch );
3746       }
3747 
3748     private:
3749       OwnerType        m_owner    = OwnerType();
3750       PoolType         m_pool     = PoolType();
3751       Dispatch const * m_dispatch = nullptr;
3752   };
3753 
3754   using Bool32 = uint32_t;
3755   using DeviceAddress = uint64_t;
3756   using DeviceSize = uint64_t;
3757   using SampleMask = uint32_t;
3758 
3759   template <typename EnumType, EnumType value>
3760   struct CppType
3761   {};
3762 
3763   template <typename Type>
3764   struct isVulkanHandleType
3765   {
3766     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = false;
3767   };
3768 
toHexString(uint32_t value)3769   VULKAN_HPP_INLINE std::string toHexString( uint32_t value )
3770   {
3771     std::stringstream stream;
3772     stream << std::hex << value;
3773     return stream.str();
3774   }
3775 
3776 #ifdef VK_ENABLE_BETA_EXTENSIONS
3777   enum class AccelerationStructureBuildTypeKHR
3778   {
3779     eHost = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
3780     eDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
3781     eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
3782   };
3783 
to_string(AccelerationStructureBuildTypeKHR value)3784   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value )
3785   {
3786     switch ( value )
3787     {
3788       case AccelerationStructureBuildTypeKHR::eHost : return "Host";
3789       case AccelerationStructureBuildTypeKHR::eDevice : return "Device";
3790       case AccelerationStructureBuildTypeKHR::eHostOrDevice : return "HostOrDevice";
3791       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3792     }
3793   }
3794 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3795 
3796   enum class AccelerationStructureMemoryRequirementsTypeKHR
3797   {
3798     eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR,
3799     eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR,
3800     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR
3801   };
3802   using AccelerationStructureMemoryRequirementsTypeNV = AccelerationStructureMemoryRequirementsTypeKHR;
3803 
to_string(AccelerationStructureMemoryRequirementsTypeKHR value)3804   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeKHR value )
3805   {
3806     switch ( value )
3807     {
3808       case AccelerationStructureMemoryRequirementsTypeKHR::eObject : return "Object";
3809       case AccelerationStructureMemoryRequirementsTypeKHR::eBuildScratch : return "BuildScratch";
3810       case AccelerationStructureMemoryRequirementsTypeKHR::eUpdateScratch : return "UpdateScratch";
3811       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3812     }
3813   }
3814 
3815   enum class AccelerationStructureTypeKHR
3816   {
3817     eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
3818     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR
3819   };
3820   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
3821 
to_string(AccelerationStructureTypeKHR value)3822   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value )
3823   {
3824     switch ( value )
3825     {
3826       case AccelerationStructureTypeKHR::eTopLevel : return "TopLevel";
3827       case AccelerationStructureTypeKHR::eBottomLevel : return "BottomLevel";
3828       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3829     }
3830   }
3831 
3832   enum class AccessFlagBits : VkAccessFlags
3833   {
3834     eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
3835     eIndexRead = VK_ACCESS_INDEX_READ_BIT,
3836     eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
3837     eUniformRead = VK_ACCESS_UNIFORM_READ_BIT,
3838     eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
3839     eShaderRead = VK_ACCESS_SHADER_READ_BIT,
3840     eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT,
3841     eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
3842     eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
3843     eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
3844     eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
3845     eTransferRead = VK_ACCESS_TRANSFER_READ_BIT,
3846     eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
3847     eHostRead = VK_ACCESS_HOST_READ_BIT,
3848     eHostWrite = VK_ACCESS_HOST_WRITE_BIT,
3849     eMemoryRead = VK_ACCESS_MEMORY_READ_BIT,
3850     eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT,
3851     eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
3852     eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
3853     eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
3854     eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
3855     eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
3856     eAccelerationStructureReadKHR = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
3857     eAccelerationStructureWriteKHR = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
3858     eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
3859     eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
3860     eCommandPreprocessReadNV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
3861     eCommandPreprocessWriteNV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
3862     eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
3863     eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
3864     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR
3865   };
3866 
to_string(AccessFlagBits value)3867   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
3868   {
3869     switch ( value )
3870     {
3871       case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead";
3872       case AccessFlagBits::eIndexRead : return "IndexRead";
3873       case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead";
3874       case AccessFlagBits::eUniformRead : return "UniformRead";
3875       case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead";
3876       case AccessFlagBits::eShaderRead : return "ShaderRead";
3877       case AccessFlagBits::eShaderWrite : return "ShaderWrite";
3878       case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead";
3879       case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite";
3880       case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead";
3881       case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite";
3882       case AccessFlagBits::eTransferRead : return "TransferRead";
3883       case AccessFlagBits::eTransferWrite : return "TransferWrite";
3884       case AccessFlagBits::eHostRead : return "HostRead";
3885       case AccessFlagBits::eHostWrite : return "HostWrite";
3886       case AccessFlagBits::eMemoryRead : return "MemoryRead";
3887       case AccessFlagBits::eMemoryWrite : return "MemoryWrite";
3888       case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT";
3889       case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT";
3890       case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT";
3891       case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT";
3892       case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT";
3893       case AccessFlagBits::eAccelerationStructureReadKHR : return "AccelerationStructureReadKHR";
3894       case AccessFlagBits::eAccelerationStructureWriteKHR : return "AccelerationStructureWriteKHR";
3895       case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV";
3896       case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT";
3897       case AccessFlagBits::eCommandPreprocessReadNV : return "CommandPreprocessReadNV";
3898       case AccessFlagBits::eCommandPreprocessWriteNV : return "CommandPreprocessWriteNV";
3899       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3900     }
3901   }
3902 
3903   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
3904   {};
3905 
to_string(AcquireProfilingLockFlagBitsKHR)3906   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR )
3907   {
3908     return "(void)";
3909   }
3910 
3911   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
3912   {
3913     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
3914   };
3915 
to_string(AttachmentDescriptionFlagBits value)3916   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
3917   {
3918     switch ( value )
3919     {
3920       case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias";
3921       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3922     }
3923   }
3924 
3925   enum class AttachmentLoadOp
3926   {
3927     eLoad = VK_ATTACHMENT_LOAD_OP_LOAD,
3928     eClear = VK_ATTACHMENT_LOAD_OP_CLEAR,
3929     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
3930   };
3931 
to_string(AttachmentLoadOp value)3932   VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
3933   {
3934     switch ( value )
3935     {
3936       case AttachmentLoadOp::eLoad : return "Load";
3937       case AttachmentLoadOp::eClear : return "Clear";
3938       case AttachmentLoadOp::eDontCare : return "DontCare";
3939       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3940     }
3941   }
3942 
3943   enum class AttachmentStoreOp
3944   {
3945     eStore = VK_ATTACHMENT_STORE_OP_STORE,
3946     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
3947     eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
3948   };
3949 
to_string(AttachmentStoreOp value)3950   VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
3951   {
3952     switch ( value )
3953     {
3954       case AttachmentStoreOp::eStore : return "Store";
3955       case AttachmentStoreOp::eDontCare : return "DontCare";
3956       case AttachmentStoreOp::eNoneQCOM : return "NoneQCOM";
3957       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3958     }
3959   }
3960 
3961   enum class BlendFactor
3962   {
3963     eZero = VK_BLEND_FACTOR_ZERO,
3964     eOne = VK_BLEND_FACTOR_ONE,
3965     eSrcColor = VK_BLEND_FACTOR_SRC_COLOR,
3966     eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
3967     eDstColor = VK_BLEND_FACTOR_DST_COLOR,
3968     eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
3969     eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA,
3970     eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
3971     eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA,
3972     eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
3973     eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR,
3974     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
3975     eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA,
3976     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
3977     eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
3978     eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR,
3979     eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
3980     eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA,
3981     eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
3982   };
3983 
to_string(BlendFactor value)3984   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
3985   {
3986     switch ( value )
3987     {
3988       case BlendFactor::eZero : return "Zero";
3989       case BlendFactor::eOne : return "One";
3990       case BlendFactor::eSrcColor : return "SrcColor";
3991       case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor";
3992       case BlendFactor::eDstColor : return "DstColor";
3993       case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor";
3994       case BlendFactor::eSrcAlpha : return "SrcAlpha";
3995       case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha";
3996       case BlendFactor::eDstAlpha : return "DstAlpha";
3997       case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha";
3998       case BlendFactor::eConstantColor : return "ConstantColor";
3999       case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor";
4000       case BlendFactor::eConstantAlpha : return "ConstantAlpha";
4001       case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha";
4002       case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate";
4003       case BlendFactor::eSrc1Color : return "Src1Color";
4004       case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color";
4005       case BlendFactor::eSrc1Alpha : return "Src1Alpha";
4006       case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha";
4007       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4008     }
4009   }
4010 
4011   enum class BlendOp
4012   {
4013     eAdd = VK_BLEND_OP_ADD,
4014     eSubtract = VK_BLEND_OP_SUBTRACT,
4015     eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT,
4016     eMin = VK_BLEND_OP_MIN,
4017     eMax = VK_BLEND_OP_MAX,
4018     eZeroEXT = VK_BLEND_OP_ZERO_EXT,
4019     eSrcEXT = VK_BLEND_OP_SRC_EXT,
4020     eDstEXT = VK_BLEND_OP_DST_EXT,
4021     eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT,
4022     eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT,
4023     eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT,
4024     eDstInEXT = VK_BLEND_OP_DST_IN_EXT,
4025     eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT,
4026     eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT,
4027     eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT,
4028     eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT,
4029     eXorEXT = VK_BLEND_OP_XOR_EXT,
4030     eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT,
4031     eScreenEXT = VK_BLEND_OP_SCREEN_EXT,
4032     eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT,
4033     eDarkenEXT = VK_BLEND_OP_DARKEN_EXT,
4034     eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT,
4035     eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT,
4036     eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT,
4037     eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT,
4038     eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT,
4039     eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT,
4040     eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT,
4041     eInvertEXT = VK_BLEND_OP_INVERT_EXT,
4042     eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT,
4043     eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT,
4044     eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT,
4045     eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT,
4046     eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT,
4047     ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT,
4048     eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT,
4049     eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT,
4050     eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT,
4051     eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT,
4052     eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
4053     ePlusEXT = VK_BLEND_OP_PLUS_EXT,
4054     ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT,
4055     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
4056     ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT,
4057     eMinusEXT = VK_BLEND_OP_MINUS_EXT,
4058     eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT,
4059     eContrastEXT = VK_BLEND_OP_CONTRAST_EXT,
4060     eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT,
4061     eRedEXT = VK_BLEND_OP_RED_EXT,
4062     eGreenEXT = VK_BLEND_OP_GREEN_EXT,
4063     eBlueEXT = VK_BLEND_OP_BLUE_EXT
4064   };
4065 
to_string(BlendOp value)4066   VULKAN_HPP_INLINE std::string to_string( BlendOp value )
4067   {
4068     switch ( value )
4069     {
4070       case BlendOp::eAdd : return "Add";
4071       case BlendOp::eSubtract : return "Subtract";
4072       case BlendOp::eReverseSubtract : return "ReverseSubtract";
4073       case BlendOp::eMin : return "Min";
4074       case BlendOp::eMax : return "Max";
4075       case BlendOp::eZeroEXT : return "ZeroEXT";
4076       case BlendOp::eSrcEXT : return "SrcEXT";
4077       case BlendOp::eDstEXT : return "DstEXT";
4078       case BlendOp::eSrcOverEXT : return "SrcOverEXT";
4079       case BlendOp::eDstOverEXT : return "DstOverEXT";
4080       case BlendOp::eSrcInEXT : return "SrcInEXT";
4081       case BlendOp::eDstInEXT : return "DstInEXT";
4082       case BlendOp::eSrcOutEXT : return "SrcOutEXT";
4083       case BlendOp::eDstOutEXT : return "DstOutEXT";
4084       case BlendOp::eSrcAtopEXT : return "SrcAtopEXT";
4085       case BlendOp::eDstAtopEXT : return "DstAtopEXT";
4086       case BlendOp::eXorEXT : return "XorEXT";
4087       case BlendOp::eMultiplyEXT : return "MultiplyEXT";
4088       case BlendOp::eScreenEXT : return "ScreenEXT";
4089       case BlendOp::eOverlayEXT : return "OverlayEXT";
4090       case BlendOp::eDarkenEXT : return "DarkenEXT";
4091       case BlendOp::eLightenEXT : return "LightenEXT";
4092       case BlendOp::eColordodgeEXT : return "ColordodgeEXT";
4093       case BlendOp::eColorburnEXT : return "ColorburnEXT";
4094       case BlendOp::eHardlightEXT : return "HardlightEXT";
4095       case BlendOp::eSoftlightEXT : return "SoftlightEXT";
4096       case BlendOp::eDifferenceEXT : return "DifferenceEXT";
4097       case BlendOp::eExclusionEXT : return "ExclusionEXT";
4098       case BlendOp::eInvertEXT : return "InvertEXT";
4099       case BlendOp::eInvertRgbEXT : return "InvertRgbEXT";
4100       case BlendOp::eLineardodgeEXT : return "LineardodgeEXT";
4101       case BlendOp::eLinearburnEXT : return "LinearburnEXT";
4102       case BlendOp::eVividlightEXT : return "VividlightEXT";
4103       case BlendOp::eLinearlightEXT : return "LinearlightEXT";
4104       case BlendOp::ePinlightEXT : return "PinlightEXT";
4105       case BlendOp::eHardmixEXT : return "HardmixEXT";
4106       case BlendOp::eHslHueEXT : return "HslHueEXT";
4107       case BlendOp::eHslSaturationEXT : return "HslSaturationEXT";
4108       case BlendOp::eHslColorEXT : return "HslColorEXT";
4109       case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT";
4110       case BlendOp::ePlusEXT : return "PlusEXT";
4111       case BlendOp::ePlusClampedEXT : return "PlusClampedEXT";
4112       case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT";
4113       case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT";
4114       case BlendOp::eMinusEXT : return "MinusEXT";
4115       case BlendOp::eMinusClampedEXT : return "MinusClampedEXT";
4116       case BlendOp::eContrastEXT : return "ContrastEXT";
4117       case BlendOp::eInvertOvgEXT : return "InvertOvgEXT";
4118       case BlendOp::eRedEXT : return "RedEXT";
4119       case BlendOp::eGreenEXT : return "GreenEXT";
4120       case BlendOp::eBlueEXT : return "BlueEXT";
4121       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4122     }
4123   }
4124 
4125   enum class BlendOverlapEXT
4126   {
4127     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
4128     eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT,
4129     eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT
4130   };
4131 
to_string(BlendOverlapEXT value)4132   VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
4133   {
4134     switch ( value )
4135     {
4136       case BlendOverlapEXT::eUncorrelated : return "Uncorrelated";
4137       case BlendOverlapEXT::eDisjoint : return "Disjoint";
4138       case BlendOverlapEXT::eConjoint : return "Conjoint";
4139       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4140     }
4141   }
4142 
4143   enum class BorderColor
4144   {
4145     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
4146     eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
4147     eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
4148     eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
4149     eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
4150     eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
4151     eFloatCustomEXT = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
4152     eIntCustomEXT = VK_BORDER_COLOR_INT_CUSTOM_EXT
4153   };
4154 
to_string(BorderColor value)4155   VULKAN_HPP_INLINE std::string to_string( BorderColor value )
4156   {
4157     switch ( value )
4158     {
4159       case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack";
4160       case BorderColor::eIntTransparentBlack : return "IntTransparentBlack";
4161       case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack";
4162       case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack";
4163       case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite";
4164       case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite";
4165       case BorderColor::eFloatCustomEXT : return "FloatCustomEXT";
4166       case BorderColor::eIntCustomEXT : return "IntCustomEXT";
4167       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4168     }
4169   }
4170 
4171   enum class BufferCreateFlagBits : VkBufferCreateFlags
4172   {
4173     eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
4174     eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
4175     eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
4176     eProtected = VK_BUFFER_CREATE_PROTECTED_BIT,
4177     eDeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
4178     eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
4179     eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
4180   };
4181 
to_string(BufferCreateFlagBits value)4182   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
4183   {
4184     switch ( value )
4185     {
4186       case BufferCreateFlagBits::eSparseBinding : return "SparseBinding";
4187       case BufferCreateFlagBits::eSparseResidency : return "SparseResidency";
4188       case BufferCreateFlagBits::eSparseAliased : return "SparseAliased";
4189       case BufferCreateFlagBits::eProtected : return "Protected";
4190       case BufferCreateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
4191       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4192     }
4193   }
4194 
4195   enum class BufferUsageFlagBits : VkBufferUsageFlags
4196   {
4197     eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
4198     eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
4199     eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
4200     eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
4201     eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
4202     eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
4203     eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
4204     eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
4205     eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
4206     eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
4207     eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
4208     eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
4209     eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
4210     eRayTracingKHR = VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
4211     eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
4212     eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
4213     eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
4214   };
4215 
to_string(BufferUsageFlagBits value)4216   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
4217   {
4218     switch ( value )
4219     {
4220       case BufferUsageFlagBits::eTransferSrc : return "TransferSrc";
4221       case BufferUsageFlagBits::eTransferDst : return "TransferDst";
4222       case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
4223       case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
4224       case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer";
4225       case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer";
4226       case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer";
4227       case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer";
4228       case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer";
4229       case BufferUsageFlagBits::eShaderDeviceAddress : return "ShaderDeviceAddress";
4230       case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT";
4231       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT";
4232       case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
4233       case BufferUsageFlagBits::eRayTracingKHR : return "RayTracingKHR";
4234       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4235     }
4236   }
4237 
4238   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
4239   {
4240     eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
4241     eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
4242     ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
4243     ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
4244     eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR
4245   };
4246   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
4247 
to_string(BuildAccelerationStructureFlagBitsKHR value)4248   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value )
4249   {
4250     switch ( value )
4251     {
4252       case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate : return "AllowUpdate";
4253       case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction : return "AllowCompaction";
4254       case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace : return "PreferFastTrace";
4255       case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild : return "PreferFastBuild";
4256       case BuildAccelerationStructureFlagBitsKHR::eLowMemory : return "LowMemory";
4257       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4258     }
4259   }
4260 
4261   enum class ChromaLocation
4262   {
4263     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
4264     eMidpoint = VK_CHROMA_LOCATION_MIDPOINT
4265   };
4266   using ChromaLocationKHR = ChromaLocation;
4267 
to_string(ChromaLocation value)4268   VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
4269   {
4270     switch ( value )
4271     {
4272       case ChromaLocation::eCositedEven : return "CositedEven";
4273       case ChromaLocation::eMidpoint : return "Midpoint";
4274       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4275     }
4276   }
4277 
4278   enum class CoarseSampleOrderTypeNV
4279   {
4280     eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
4281     eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
4282     ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
4283     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
4284   };
4285 
to_string(CoarseSampleOrderTypeNV value)4286   VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
4287   {
4288     switch ( value )
4289     {
4290       case CoarseSampleOrderTypeNV::eDefault : return "Default";
4291       case CoarseSampleOrderTypeNV::eCustom : return "Custom";
4292       case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor";
4293       case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor";
4294       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4295     }
4296   }
4297 
4298   enum class ColorComponentFlagBits : VkColorComponentFlags
4299   {
4300     eR = VK_COLOR_COMPONENT_R_BIT,
4301     eG = VK_COLOR_COMPONENT_G_BIT,
4302     eB = VK_COLOR_COMPONENT_B_BIT,
4303     eA = VK_COLOR_COMPONENT_A_BIT
4304   };
4305 
to_string(ColorComponentFlagBits value)4306   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
4307   {
4308     switch ( value )
4309     {
4310       case ColorComponentFlagBits::eR : return "R";
4311       case ColorComponentFlagBits::eG : return "G";
4312       case ColorComponentFlagBits::eB : return "B";
4313       case ColorComponentFlagBits::eA : return "A";
4314       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4315     }
4316   }
4317 
4318   enum class ColorSpaceKHR
4319   {
4320     eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
4321     eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
4322     eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
4323     eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
4324     eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
4325     eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT,
4326     eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
4327     eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
4328     eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT,
4329     eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT,
4330     eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT,
4331     eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
4332     eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
4333     ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT,
4334     eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
4335     eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
4336     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
4337     eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
4338   };
4339 
to_string(ColorSpaceKHR value)4340   VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
4341   {
4342     switch ( value )
4343     {
4344       case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear";
4345       case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT";
4346       case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT";
4347       case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT";
4348       case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT";
4349       case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT";
4350       case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT";
4351       case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT";
4352       case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT";
4353       case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT";
4354       case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT";
4355       case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT";
4356       case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT";
4357       case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT";
4358       case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT";
4359       case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD";
4360       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4361     }
4362   }
4363 
4364   enum class CommandBufferLevel
4365   {
4366     ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
4367     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
4368   };
4369 
to_string(CommandBufferLevel value)4370   VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
4371   {
4372     switch ( value )
4373     {
4374       case CommandBufferLevel::ePrimary : return "Primary";
4375       case CommandBufferLevel::eSecondary : return "Secondary";
4376       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4377     }
4378   }
4379 
4380   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
4381   {
4382     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
4383   };
4384 
to_string(CommandBufferResetFlagBits value)4385   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
4386   {
4387     switch ( value )
4388     {
4389       case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources";
4390       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4391     }
4392   }
4393 
4394   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
4395   {
4396     eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
4397     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
4398     eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
4399   };
4400 
to_string(CommandBufferUsageFlagBits value)4401   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
4402   {
4403     switch ( value )
4404     {
4405       case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit";
4406       case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue";
4407       case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse";
4408       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4409     }
4410   }
4411 
4412   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
4413   {
4414     eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
4415     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
4416     eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
4417   };
4418 
to_string(CommandPoolCreateFlagBits value)4419   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
4420   {
4421     switch ( value )
4422     {
4423       case CommandPoolCreateFlagBits::eTransient : return "Transient";
4424       case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer";
4425       case CommandPoolCreateFlagBits::eProtected : return "Protected";
4426       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4427     }
4428   }
4429 
4430   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
4431   {
4432     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
4433   };
4434 
to_string(CommandPoolResetFlagBits value)4435   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
4436   {
4437     switch ( value )
4438     {
4439       case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources";
4440       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4441     }
4442   }
4443 
4444   enum class CompareOp
4445   {
4446     eNever = VK_COMPARE_OP_NEVER,
4447     eLess = VK_COMPARE_OP_LESS,
4448     eEqual = VK_COMPARE_OP_EQUAL,
4449     eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
4450     eGreater = VK_COMPARE_OP_GREATER,
4451     eNotEqual = VK_COMPARE_OP_NOT_EQUAL,
4452     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
4453     eAlways = VK_COMPARE_OP_ALWAYS
4454   };
4455 
to_string(CompareOp value)4456   VULKAN_HPP_INLINE std::string to_string( CompareOp value )
4457   {
4458     switch ( value )
4459     {
4460       case CompareOp::eNever : return "Never";
4461       case CompareOp::eLess : return "Less";
4462       case CompareOp::eEqual : return "Equal";
4463       case CompareOp::eLessOrEqual : return "LessOrEqual";
4464       case CompareOp::eGreater : return "Greater";
4465       case CompareOp::eNotEqual : return "NotEqual";
4466       case CompareOp::eGreaterOrEqual : return "GreaterOrEqual";
4467       case CompareOp::eAlways : return "Always";
4468       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4469     }
4470   }
4471 
4472   enum class ComponentSwizzle
4473   {
4474     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
4475     eZero = VK_COMPONENT_SWIZZLE_ZERO,
4476     eOne = VK_COMPONENT_SWIZZLE_ONE,
4477     eR = VK_COMPONENT_SWIZZLE_R,
4478     eG = VK_COMPONENT_SWIZZLE_G,
4479     eB = VK_COMPONENT_SWIZZLE_B,
4480     eA = VK_COMPONENT_SWIZZLE_A
4481   };
4482 
to_string(ComponentSwizzle value)4483   VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
4484   {
4485     switch ( value )
4486     {
4487       case ComponentSwizzle::eIdentity : return "Identity";
4488       case ComponentSwizzle::eZero : return "Zero";
4489       case ComponentSwizzle::eOne : return "One";
4490       case ComponentSwizzle::eR : return "R";
4491       case ComponentSwizzle::eG : return "G";
4492       case ComponentSwizzle::eB : return "B";
4493       case ComponentSwizzle::eA : return "A";
4494       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4495     }
4496   }
4497 
4498   enum class ComponentTypeNV
4499   {
4500     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
4501     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
4502     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
4503     eSint8 = VK_COMPONENT_TYPE_SINT8_NV,
4504     eSint16 = VK_COMPONENT_TYPE_SINT16_NV,
4505     eSint32 = VK_COMPONENT_TYPE_SINT32_NV,
4506     eSint64 = VK_COMPONENT_TYPE_SINT64_NV,
4507     eUint8 = VK_COMPONENT_TYPE_UINT8_NV,
4508     eUint16 = VK_COMPONENT_TYPE_UINT16_NV,
4509     eUint32 = VK_COMPONENT_TYPE_UINT32_NV,
4510     eUint64 = VK_COMPONENT_TYPE_UINT64_NV
4511   };
4512 
to_string(ComponentTypeNV value)4513   VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
4514   {
4515     switch ( value )
4516     {
4517       case ComponentTypeNV::eFloat16 : return "Float16";
4518       case ComponentTypeNV::eFloat32 : return "Float32";
4519       case ComponentTypeNV::eFloat64 : return "Float64";
4520       case ComponentTypeNV::eSint8 : return "Sint8";
4521       case ComponentTypeNV::eSint16 : return "Sint16";
4522       case ComponentTypeNV::eSint32 : return "Sint32";
4523       case ComponentTypeNV::eSint64 : return "Sint64";
4524       case ComponentTypeNV::eUint8 : return "Uint8";
4525       case ComponentTypeNV::eUint16 : return "Uint16";
4526       case ComponentTypeNV::eUint32 : return "Uint32";
4527       case ComponentTypeNV::eUint64 : return "Uint64";
4528       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4529     }
4530   }
4531 
4532   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
4533   {
4534     eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
4535     ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
4536     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
4537     eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
4538   };
4539 
to_string(CompositeAlphaFlagBitsKHR value)4540   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
4541   {
4542     switch ( value )
4543     {
4544       case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque";
4545       case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied";
4546       case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied";
4547       case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit";
4548       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4549     }
4550   }
4551 
4552   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
4553   {
4554     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
4555   };
4556 
to_string(ConditionalRenderingFlagBitsEXT value)4557   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
4558   {
4559     switch ( value )
4560     {
4561       case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted";
4562       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4563     }
4564   }
4565 
4566   enum class ConservativeRasterizationModeEXT
4567   {
4568     eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
4569     eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
4570     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
4571   };
4572 
to_string(ConservativeRasterizationModeEXT value)4573   VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
4574   {
4575     switch ( value )
4576     {
4577       case ConservativeRasterizationModeEXT::eDisabled : return "Disabled";
4578       case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate";
4579       case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate";
4580       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4581     }
4582   }
4583 
4584   enum class CopyAccelerationStructureModeKHR
4585   {
4586     eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
4587     eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
4588     eSerialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
4589     eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
4590   };
4591   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
4592 
to_string(CopyAccelerationStructureModeKHR value)4593   VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value )
4594   {
4595     switch ( value )
4596     {
4597       case CopyAccelerationStructureModeKHR::eClone : return "Clone";
4598       case CopyAccelerationStructureModeKHR::eCompact : return "Compact";
4599       case CopyAccelerationStructureModeKHR::eSerialize : return "Serialize";
4600       case CopyAccelerationStructureModeKHR::eDeserialize : return "Deserialize";
4601       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4602     }
4603   }
4604 
4605   enum class CoverageModulationModeNV
4606   {
4607     eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV,
4608     eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV,
4609     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
4610     eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV
4611   };
4612 
to_string(CoverageModulationModeNV value)4613   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
4614   {
4615     switch ( value )
4616     {
4617       case CoverageModulationModeNV::eNone : return "None";
4618       case CoverageModulationModeNV::eRgb : return "Rgb";
4619       case CoverageModulationModeNV::eAlpha : return "Alpha";
4620       case CoverageModulationModeNV::eRgba : return "Rgba";
4621       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4622     }
4623   }
4624 
4625   enum class CoverageReductionModeNV
4626   {
4627     eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
4628     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
4629   };
4630 
to_string(CoverageReductionModeNV value)4631   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
4632   {
4633     switch ( value )
4634     {
4635       case CoverageReductionModeNV::eMerge : return "Merge";
4636       case CoverageReductionModeNV::eTruncate : return "Truncate";
4637       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4638     }
4639   }
4640 
4641   enum class CullModeFlagBits : VkCullModeFlags
4642   {
4643     eNone = VK_CULL_MODE_NONE,
4644     eFront = VK_CULL_MODE_FRONT_BIT,
4645     eBack = VK_CULL_MODE_BACK_BIT,
4646     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
4647   };
4648 
to_string(CullModeFlagBits value)4649   VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
4650   {
4651     switch ( value )
4652     {
4653       case CullModeFlagBits::eNone : return "None";
4654       case CullModeFlagBits::eFront : return "Front";
4655       case CullModeFlagBits::eBack : return "Back";
4656       case CullModeFlagBits::eFrontAndBack : return "FrontAndBack";
4657       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4658     }
4659   }
4660 
4661   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
4662   {
4663     eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
4664     eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT,
4665     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
4666     eError = VK_DEBUG_REPORT_ERROR_BIT_EXT,
4667     eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT
4668   };
4669 
to_string(DebugReportFlagBitsEXT value)4670   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
4671   {
4672     switch ( value )
4673     {
4674       case DebugReportFlagBitsEXT::eInformation : return "Information";
4675       case DebugReportFlagBitsEXT::eWarning : return "Warning";
4676       case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning";
4677       case DebugReportFlagBitsEXT::eError : return "Error";
4678       case DebugReportFlagBitsEXT::eDebug : return "Debug";
4679       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4680     }
4681   }
4682 
4683   enum class DebugReportObjectTypeEXT
4684   {
4685     eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
4686     eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
4687     ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
4688     eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
4689     eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
4690     eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
4691     eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
4692     eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
4693     eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
4694     eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
4695     eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
4696     eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
4697     eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
4698     eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
4699     eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
4700     eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
4701     ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
4702     ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
4703     eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
4704     ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
4705     eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
4706     eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
4707     eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
4708     eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
4709     eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
4710     eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
4711     eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
4712     eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
4713     eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
4714     eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
4715     eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
4716     eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
4717     eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
4718     eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
4719     eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
4720     eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
4721     eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
4722     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
4723     eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
4724     eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
4725   };
4726 
to_string(DebugReportObjectTypeEXT value)4727   VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
4728   {
4729     switch ( value )
4730     {
4731       case DebugReportObjectTypeEXT::eUnknown : return "Unknown";
4732       case DebugReportObjectTypeEXT::eInstance : return "Instance";
4733       case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice";
4734       case DebugReportObjectTypeEXT::eDevice : return "Device";
4735       case DebugReportObjectTypeEXT::eQueue : return "Queue";
4736       case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore";
4737       case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer";
4738       case DebugReportObjectTypeEXT::eFence : return "Fence";
4739       case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory";
4740       case DebugReportObjectTypeEXT::eBuffer : return "Buffer";
4741       case DebugReportObjectTypeEXT::eImage : return "Image";
4742       case DebugReportObjectTypeEXT::eEvent : return "Event";
4743       case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool";
4744       case DebugReportObjectTypeEXT::eBufferView : return "BufferView";
4745       case DebugReportObjectTypeEXT::eImageView : return "ImageView";
4746       case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule";
4747       case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache";
4748       case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout";
4749       case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass";
4750       case DebugReportObjectTypeEXT::ePipeline : return "Pipeline";
4751       case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout";
4752       case DebugReportObjectTypeEXT::eSampler : return "Sampler";
4753       case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool";
4754       case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet";
4755       case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer";
4756       case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool";
4757       case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR";
4758       case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR";
4759       case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
4760       case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR";
4761       case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR";
4762       case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT";
4763       case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
4764       case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
4765       case DebugReportObjectTypeEXT::eAccelerationStructureKHR : return "AccelerationStructureKHR";
4766       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4767     }
4768   }
4769 
4770   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
4771   {
4772     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
4773     eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
4774     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
4775     eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
4776   };
4777 
to_string(DebugUtilsMessageSeverityFlagBitsEXT value)4778   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
4779   {
4780     switch ( value )
4781     {
4782       case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose";
4783       case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info";
4784       case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning";
4785       case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error";
4786       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4787     }
4788   }
4789 
4790   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
4791   {
4792     eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
4793     eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
4794     ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
4795   };
4796 
to_string(DebugUtilsMessageTypeFlagBitsEXT value)4797   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
4798   {
4799     switch ( value )
4800     {
4801       case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General";
4802       case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation";
4803       case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance";
4804       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4805     }
4806   }
4807 
4808   enum class DependencyFlagBits : VkDependencyFlags
4809   {
4810     eByRegion = VK_DEPENDENCY_BY_REGION_BIT,
4811     eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT,
4812     eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT,
4813     eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
4814     eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
4815   };
4816 
to_string(DependencyFlagBits value)4817   VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
4818   {
4819     switch ( value )
4820     {
4821       case DependencyFlagBits::eByRegion : return "ByRegion";
4822       case DependencyFlagBits::eDeviceGroup : return "DeviceGroup";
4823       case DependencyFlagBits::eViewLocal : return "ViewLocal";
4824       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4825     }
4826   }
4827 
4828   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
4829   {
4830     eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
4831     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
4832     ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
4833     eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
4834   };
4835   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
4836 
to_string(DescriptorBindingFlagBits value)4837   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value )
4838   {
4839     switch ( value )
4840     {
4841       case DescriptorBindingFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
4842       case DescriptorBindingFlagBits::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending";
4843       case DescriptorBindingFlagBits::ePartiallyBound : return "PartiallyBound";
4844       case DescriptorBindingFlagBits::eVariableDescriptorCount : return "VariableDescriptorCount";
4845       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4846     }
4847   }
4848 
4849   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
4850   {
4851     eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
4852     eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
4853     eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
4854   };
4855 
to_string(DescriptorPoolCreateFlagBits value)4856   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
4857   {
4858     switch ( value )
4859     {
4860       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet";
4861       case DescriptorPoolCreateFlagBits::eUpdateAfterBind : return "UpdateAfterBind";
4862       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4863     }
4864   }
4865 
4866   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
4867   {
4868     eUpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
4869     ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
4870     eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
4871   };
4872 
to_string(DescriptorSetLayoutCreateFlagBits value)4873   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
4874   {
4875     switch ( value )
4876     {
4877       case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool : return "UpdateAfterBindPool";
4878       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR";
4879       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4880     }
4881   }
4882 
4883   enum class DescriptorType
4884   {
4885     eSampler = VK_DESCRIPTOR_TYPE_SAMPLER,
4886     eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
4887     eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
4888     eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
4889     eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
4890     eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
4891     eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
4892     eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
4893     eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
4894     eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
4895     eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
4896     eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
4897     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
4898     eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
4899   };
4900 
to_string(DescriptorType value)4901   VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
4902   {
4903     switch ( value )
4904     {
4905       case DescriptorType::eSampler : return "Sampler";
4906       case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler";
4907       case DescriptorType::eSampledImage : return "SampledImage";
4908       case DescriptorType::eStorageImage : return "StorageImage";
4909       case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer";
4910       case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer";
4911       case DescriptorType::eUniformBuffer : return "UniformBuffer";
4912       case DescriptorType::eStorageBuffer : return "StorageBuffer";
4913       case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic";
4914       case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic";
4915       case DescriptorType::eInputAttachment : return "InputAttachment";
4916       case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT";
4917       case DescriptorType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
4918       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4919     }
4920   }
4921 
4922   enum class DescriptorUpdateTemplateType
4923   {
4924     eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4925     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
4926   };
4927   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
4928 
to_string(DescriptorUpdateTemplateType value)4929   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
4930   {
4931     switch ( value )
4932     {
4933       case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet";
4934       case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR";
4935       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4936     }
4937   }
4938 
4939   enum class DeviceCreateFlagBits
4940   {};
4941 
to_string(DeviceCreateFlagBits)4942   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
4943   {
4944     return "(void)";
4945   }
4946 
4947   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
4948   {
4949     eEnableShaderDebugInfo = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
4950     eEnableResourceTracking = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
4951     eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV
4952   };
4953 
to_string(DeviceDiagnosticsConfigFlagBitsNV value)4954   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value )
4955   {
4956     switch ( value )
4957     {
4958       case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo : return "EnableShaderDebugInfo";
4959       case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking : return "EnableResourceTracking";
4960       case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints : return "EnableAutomaticCheckpoints";
4961       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4962     }
4963   }
4964 
4965   enum class DeviceEventTypeEXT
4966   {
4967     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
4968   };
4969 
to_string(DeviceEventTypeEXT value)4970   VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
4971   {
4972     switch ( value )
4973     {
4974       case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug";
4975       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4976     }
4977   }
4978 
4979   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
4980   {
4981     eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
4982     eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
4983     eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
4984     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
4985   };
4986 
to_string(DeviceGroupPresentModeFlagBitsKHR value)4987   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
4988   {
4989     switch ( value )
4990     {
4991       case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local";
4992       case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote";
4993       case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum";
4994       case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice";
4995       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4996     }
4997   }
4998 
4999   enum class DeviceMemoryReportEventTypeEXT
5000   {
5001     eAllocate = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,
5002     eFree = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,
5003     eImport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,
5004     eUnimport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,
5005     eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT
5006   };
5007 
to_string(DeviceMemoryReportEventTypeEXT value)5008   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value )
5009   {
5010     switch ( value )
5011     {
5012       case DeviceMemoryReportEventTypeEXT::eAllocate : return "Allocate";
5013       case DeviceMemoryReportEventTypeEXT::eFree : return "Free";
5014       case DeviceMemoryReportEventTypeEXT::eImport : return "Import";
5015       case DeviceMemoryReportEventTypeEXT::eUnimport : return "Unimport";
5016       case DeviceMemoryReportEventTypeEXT::eAllocationFailed : return "AllocationFailed";
5017       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5018     }
5019   }
5020 
5021   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
5022   {
5023     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
5024   };
5025 
to_string(DeviceQueueCreateFlagBits value)5026   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
5027   {
5028     switch ( value )
5029     {
5030       case DeviceQueueCreateFlagBits::eProtected : return "Protected";
5031       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5032     }
5033   }
5034 
5035   enum class DiscardRectangleModeEXT
5036   {
5037     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
5038     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
5039   };
5040 
to_string(DiscardRectangleModeEXT value)5041   VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
5042   {
5043     switch ( value )
5044     {
5045       case DiscardRectangleModeEXT::eInclusive : return "Inclusive";
5046       case DiscardRectangleModeEXT::eExclusive : return "Exclusive";
5047       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5048     }
5049   }
5050 
5051   enum class DisplayEventTypeEXT
5052   {
5053     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
5054   };
5055 
to_string(DisplayEventTypeEXT value)5056   VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
5057   {
5058     switch ( value )
5059     {
5060       case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut";
5061       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5062     }
5063   }
5064 
5065   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
5066   {
5067     eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
5068     eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
5069     ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
5070     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
5071   };
5072 
to_string(DisplayPlaneAlphaFlagBitsKHR value)5073   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
5074   {
5075     switch ( value )
5076     {
5077       case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque";
5078       case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global";
5079       case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel";
5080       case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied";
5081       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5082     }
5083   }
5084 
5085   enum class DisplayPowerStateEXT
5086   {
5087     eOff = VK_DISPLAY_POWER_STATE_OFF_EXT,
5088     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
5089     eOn = VK_DISPLAY_POWER_STATE_ON_EXT
5090   };
5091 
to_string(DisplayPowerStateEXT value)5092   VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
5093   {
5094     switch ( value )
5095     {
5096       case DisplayPowerStateEXT::eOff : return "Off";
5097       case DisplayPowerStateEXT::eSuspend : return "Suspend";
5098       case DisplayPowerStateEXT::eOn : return "On";
5099       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5100     }
5101   }
5102 
5103   enum class DriverId
5104   {
5105     eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY,
5106     eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5107     eMesaRadv = VK_DRIVER_ID_MESA_RADV,
5108     eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5109     eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5110     eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5111     eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5112     eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5113     eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY,
5114     eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5115     eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY,
5116     eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5117     eMesaLlvmpipe = VK_DRIVER_ID_MESA_LLVMPIPE,
5118     eMoltenvk = VK_DRIVER_ID_MOLTENVK,
5119     eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR
5120   };
5121   using DriverIdKHR = DriverId;
5122 
to_string(DriverId value)5123   VULKAN_HPP_INLINE std::string to_string( DriverId value )
5124   {
5125     switch ( value )
5126     {
5127       case DriverId::eAmdProprietary : return "AmdProprietary";
5128       case DriverId::eAmdOpenSource : return "AmdOpenSource";
5129       case DriverId::eMesaRadv : return "MesaRadv";
5130       case DriverId::eNvidiaProprietary : return "NvidiaProprietary";
5131       case DriverId::eIntelProprietaryWindows : return "IntelProprietaryWindows";
5132       case DriverId::eIntelOpenSourceMESA : return "IntelOpenSourceMESA";
5133       case DriverId::eImaginationProprietary : return "ImaginationProprietary";
5134       case DriverId::eQualcommProprietary : return "QualcommProprietary";
5135       case DriverId::eArmProprietary : return "ArmProprietary";
5136       case DriverId::eGoogleSwiftshader : return "GoogleSwiftshader";
5137       case DriverId::eGgpProprietary : return "GgpProprietary";
5138       case DriverId::eBroadcomProprietary : return "BroadcomProprietary";
5139       case DriverId::eMesaLlvmpipe : return "MesaLlvmpipe";
5140       case DriverId::eMoltenvk : return "Moltenvk";
5141       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5142     }
5143   }
5144 
5145   enum class DynamicState
5146   {
5147     eViewport = VK_DYNAMIC_STATE_VIEWPORT,
5148     eScissor = VK_DYNAMIC_STATE_SCISSOR,
5149     eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH,
5150     eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS,
5151     eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
5152     eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
5153     eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
5154     eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
5155     eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
5156     eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
5157     eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
5158     eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
5159     eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
5160     eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
5161     eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
5162     eFragmentShadingRateKHR = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,
5163     eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
5164     eCullModeEXT = VK_DYNAMIC_STATE_CULL_MODE_EXT,
5165     eFrontFaceEXT = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
5166     ePrimitiveTopologyEXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
5167     eViewportWithCountEXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
5168     eScissorWithCountEXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
5169     eVertexInputBindingStrideEXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
5170     eDepthTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
5171     eDepthWriteEnableEXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
5172     eDepthCompareOpEXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
5173     eDepthBoundsTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
5174     eStencilTestEnableEXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
5175     eStencilOpEXT = VK_DYNAMIC_STATE_STENCIL_OP_EXT
5176   };
5177 
to_string(DynamicState value)5178   VULKAN_HPP_INLINE std::string to_string( DynamicState value )
5179   {
5180     switch ( value )
5181     {
5182       case DynamicState::eViewport : return "Viewport";
5183       case DynamicState::eScissor : return "Scissor";
5184       case DynamicState::eLineWidth : return "LineWidth";
5185       case DynamicState::eDepthBias : return "DepthBias";
5186       case DynamicState::eBlendConstants : return "BlendConstants";
5187       case DynamicState::eDepthBounds : return "DepthBounds";
5188       case DynamicState::eStencilCompareMask : return "StencilCompareMask";
5189       case DynamicState::eStencilWriteMask : return "StencilWriteMask";
5190       case DynamicState::eStencilReference : return "StencilReference";
5191       case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV";
5192       case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT";
5193       case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT";
5194       case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV";
5195       case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV";
5196       case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV";
5197       case DynamicState::eFragmentShadingRateKHR : return "FragmentShadingRateKHR";
5198       case DynamicState::eLineStippleEXT : return "LineStippleEXT";
5199       case DynamicState::eCullModeEXT : return "CullModeEXT";
5200       case DynamicState::eFrontFaceEXT : return "FrontFaceEXT";
5201       case DynamicState::ePrimitiveTopologyEXT : return "PrimitiveTopologyEXT";
5202       case DynamicState::eViewportWithCountEXT : return "ViewportWithCountEXT";
5203       case DynamicState::eScissorWithCountEXT : return "ScissorWithCountEXT";
5204       case DynamicState::eVertexInputBindingStrideEXT : return "VertexInputBindingStrideEXT";
5205       case DynamicState::eDepthTestEnableEXT : return "DepthTestEnableEXT";
5206       case DynamicState::eDepthWriteEnableEXT : return "DepthWriteEnableEXT";
5207       case DynamicState::eDepthCompareOpEXT : return "DepthCompareOpEXT";
5208       case DynamicState::eDepthBoundsTestEnableEXT : return "DepthBoundsTestEnableEXT";
5209       case DynamicState::eStencilTestEnableEXT : return "StencilTestEnableEXT";
5210       case DynamicState::eStencilOpEXT : return "StencilOpEXT";
5211       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5212     }
5213   }
5214 
5215   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
5216   {
5217     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5218     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
5219   };
5220   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
5221 
to_string(ExternalFenceFeatureFlagBits value)5222   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
5223   {
5224     switch ( value )
5225     {
5226       case ExternalFenceFeatureFlagBits::eExportable : return "Exportable";
5227       case ExternalFenceFeatureFlagBits::eImportable : return "Importable";
5228       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5229     }
5230   }
5231 
5232   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
5233   {
5234     eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5235     eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5236     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5237     eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
5238   };
5239   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
5240 
to_string(ExternalFenceHandleTypeFlagBits value)5241   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
5242   {
5243     switch ( value )
5244     {
5245       case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5246       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5247       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5248       case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd";
5249       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5250     }
5251   }
5252 
5253   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
5254   {
5255     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5256     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5257     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
5258   };
5259   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
5260 
to_string(ExternalMemoryFeatureFlagBits value)5261   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
5262   {
5263     switch ( value )
5264     {
5265       case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly";
5266       case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable";
5267       case ExternalMemoryFeatureFlagBits::eImportable : return "Importable";
5268       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5269     }
5270   }
5271 
5272   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
5273   {
5274     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
5275     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
5276     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
5277   };
5278 
to_string(ExternalMemoryFeatureFlagBitsNV value)5279   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
5280   {
5281     switch ( value )
5282     {
5283       case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly";
5284       case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable";
5285       case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable";
5286       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5287     }
5288   }
5289 
5290   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
5291   {
5292     eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5293     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5294     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5295     eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5296     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5297     eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5298     eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5299     eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
5300     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
5301     eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
5302     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
5303   };
5304   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
5305 
to_string(ExternalMemoryHandleTypeFlagBits value)5306   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
5307   {
5308     switch ( value )
5309     {
5310       case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5311       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5312       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5313       case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture";
5314       case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt";
5315       case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap";
5316       case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource";
5317       case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT";
5318       case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID";
5319       case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT";
5320       case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT";
5321       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5322     }
5323   }
5324 
5325   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
5326   {
5327     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
5328     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
5329     eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
5330     eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
5331   };
5332 
to_string(ExternalMemoryHandleTypeFlagBitsNV value)5333   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
5334   {
5335     switch ( value )
5336     {
5337       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32";
5338       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5339       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image";
5340       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt";
5341       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5342     }
5343   }
5344 
5345   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
5346   {
5347     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5348     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
5349   };
5350   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
5351 
to_string(ExternalSemaphoreFeatureFlagBits value)5352   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
5353   {
5354     switch ( value )
5355     {
5356       case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable";
5357       case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable";
5358       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5359     }
5360   }
5361 
5362   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
5363   {
5364     eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5365     eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5366     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5367     eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5368     eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5369     eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
5370   };
5371   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
5372 
to_string(ExternalSemaphoreHandleTypeFlagBits value)5373   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
5374   {
5375     switch ( value )
5376     {
5377       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
5378       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
5379       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
5380       case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence";
5381       case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd";
5382       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5383     }
5384   }
5385 
5386   enum class FenceCreateFlagBits : VkFenceCreateFlags
5387   {
5388     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
5389   };
5390 
to_string(FenceCreateFlagBits value)5391   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
5392   {
5393     switch ( value )
5394     {
5395       case FenceCreateFlagBits::eSignaled : return "Signaled";
5396       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5397     }
5398   }
5399 
5400   enum class FenceImportFlagBits : VkFenceImportFlags
5401   {
5402     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
5403   };
5404   using FenceImportFlagBitsKHR = FenceImportFlagBits;
5405 
to_string(FenceImportFlagBits value)5406   VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
5407   {
5408     switch ( value )
5409     {
5410       case FenceImportFlagBits::eTemporary : return "Temporary";
5411       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5412     }
5413   }
5414 
5415   enum class Filter
5416   {
5417     eNearest = VK_FILTER_NEAREST,
5418     eLinear = VK_FILTER_LINEAR,
5419     eCubicIMG = VK_FILTER_CUBIC_IMG,
5420     eCubicEXT = VK_FILTER_CUBIC_EXT
5421   };
5422 
to_string(Filter value)5423   VULKAN_HPP_INLINE std::string to_string( Filter value )
5424   {
5425     switch ( value )
5426     {
5427       case Filter::eNearest : return "Nearest";
5428       case Filter::eLinear : return "Linear";
5429       case Filter::eCubicIMG : return "CubicIMG";
5430       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5431     }
5432   }
5433 
5434   enum class Format
5435   {
5436     eUndefined = VK_FORMAT_UNDEFINED,
5437     eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8,
5438     eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
5439     eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
5440     eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16,
5441     eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16,
5442     eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
5443     eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
5444     eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
5445     eR8Unorm = VK_FORMAT_R8_UNORM,
5446     eR8Snorm = VK_FORMAT_R8_SNORM,
5447     eR8Uscaled = VK_FORMAT_R8_USCALED,
5448     eR8Sscaled = VK_FORMAT_R8_SSCALED,
5449     eR8Uint = VK_FORMAT_R8_UINT,
5450     eR8Sint = VK_FORMAT_R8_SINT,
5451     eR8Srgb = VK_FORMAT_R8_SRGB,
5452     eR8G8Unorm = VK_FORMAT_R8G8_UNORM,
5453     eR8G8Snorm = VK_FORMAT_R8G8_SNORM,
5454     eR8G8Uscaled = VK_FORMAT_R8G8_USCALED,
5455     eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED,
5456     eR8G8Uint = VK_FORMAT_R8G8_UINT,
5457     eR8G8Sint = VK_FORMAT_R8G8_SINT,
5458     eR8G8Srgb = VK_FORMAT_R8G8_SRGB,
5459     eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM,
5460     eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM,
5461     eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED,
5462     eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED,
5463     eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT,
5464     eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT,
5465     eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB,
5466     eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM,
5467     eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM,
5468     eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED,
5469     eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED,
5470     eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT,
5471     eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT,
5472     eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB,
5473     eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM,
5474     eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM,
5475     eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED,
5476     eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED,
5477     eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT,
5478     eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT,
5479     eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB,
5480     eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM,
5481     eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM,
5482     eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED,
5483     eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED,
5484     eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT,
5485     eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT,
5486     eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB,
5487     eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
5488     eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
5489     eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
5490     eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
5491     eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32,
5492     eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32,
5493     eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
5494     eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
5495     eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
5496     eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
5497     eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
5498     eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32,
5499     eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32,
5500     eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
5501     eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
5502     eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
5503     eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
5504     eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32,
5505     eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32,
5506     eR16Unorm = VK_FORMAT_R16_UNORM,
5507     eR16Snorm = VK_FORMAT_R16_SNORM,
5508     eR16Uscaled = VK_FORMAT_R16_USCALED,
5509     eR16Sscaled = VK_FORMAT_R16_SSCALED,
5510     eR16Uint = VK_FORMAT_R16_UINT,
5511     eR16Sint = VK_FORMAT_R16_SINT,
5512     eR16Sfloat = VK_FORMAT_R16_SFLOAT,
5513     eR16G16Unorm = VK_FORMAT_R16G16_UNORM,
5514     eR16G16Snorm = VK_FORMAT_R16G16_SNORM,
5515     eR16G16Uscaled = VK_FORMAT_R16G16_USCALED,
5516     eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED,
5517     eR16G16Uint = VK_FORMAT_R16G16_UINT,
5518     eR16G16Sint = VK_FORMAT_R16G16_SINT,
5519     eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT,
5520     eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM,
5521     eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM,
5522     eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED,
5523     eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED,
5524     eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT,
5525     eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT,
5526     eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT,
5527     eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM,
5528     eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM,
5529     eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED,
5530     eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED,
5531     eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT,
5532     eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT,
5533     eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT,
5534     eR32Uint = VK_FORMAT_R32_UINT,
5535     eR32Sint = VK_FORMAT_R32_SINT,
5536     eR32Sfloat = VK_FORMAT_R32_SFLOAT,
5537     eR32G32Uint = VK_FORMAT_R32G32_UINT,
5538     eR32G32Sint = VK_FORMAT_R32G32_SINT,
5539     eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT,
5540     eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT,
5541     eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT,
5542     eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT,
5543     eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT,
5544     eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT,
5545     eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT,
5546     eR64Uint = VK_FORMAT_R64_UINT,
5547     eR64Sint = VK_FORMAT_R64_SINT,
5548     eR64Sfloat = VK_FORMAT_R64_SFLOAT,
5549     eR64G64Uint = VK_FORMAT_R64G64_UINT,
5550     eR64G64Sint = VK_FORMAT_R64G64_SINT,
5551     eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT,
5552     eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT,
5553     eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT,
5554     eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT,
5555     eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT,
5556     eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT,
5557     eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT,
5558     eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
5559     eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
5560     eD16Unorm = VK_FORMAT_D16_UNORM,
5561     eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32,
5562     eD32Sfloat = VK_FORMAT_D32_SFLOAT,
5563     eS8Uint = VK_FORMAT_S8_UINT,
5564     eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT,
5565     eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT,
5566     eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT,
5567     eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
5568     eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
5569     eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
5570     eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
5571     eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK,
5572     eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK,
5573     eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK,
5574     eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK,
5575     eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK,
5576     eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK,
5577     eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK,
5578     eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK,
5579     eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK,
5580     eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK,
5581     eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK,
5582     eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK,
5583     eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
5584     eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
5585     eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
5586     eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
5587     eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
5588     eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
5589     eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK,
5590     eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK,
5591     eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
5592     eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
5593     eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
5594     eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
5595     eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
5596     eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
5597     eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
5598     eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
5599     eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
5600     eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
5601     eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
5602     eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
5603     eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
5604     eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
5605     eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
5606     eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
5607     eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
5608     eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
5609     eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
5610     eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
5611     eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
5612     eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
5613     eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
5614     eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
5615     eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
5616     eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
5617     eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
5618     eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
5619     eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
5620     eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
5621     eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM,
5622     eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM,
5623     eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
5624     eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
5625     eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
5626     eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
5627     eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
5628     eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16,
5629     eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
5630     eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
5631     eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
5632     eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
5633     eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
5634     eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
5635     eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
5636     eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
5637     eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
5638     eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16,
5639     eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
5640     eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
5641     eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
5642     eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
5643     eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
5644     eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
5645     eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
5646     eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
5647     eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
5648     eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM,
5649     eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM,
5650     eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
5651     eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
5652     eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
5653     eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
5654     eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
5655     ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
5656     ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
5657     ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
5658     ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
5659     ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
5660     ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
5661     ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
5662     ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
5663     eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
5664     eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
5665     eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
5666     eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
5667     eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
5668     eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
5669     eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
5670     eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
5671     eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
5672     eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
5673     eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
5674     eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
5675     eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
5676     eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
5677     eA4R4G4B4UnormPack16EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
5678     eA4B4G4R4UnormPack16EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
5679     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
5680     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
5681     eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
5682     eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
5683     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
5684     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
5685     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
5686     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
5687     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
5688     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
5689     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
5690     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
5691     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
5692     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
5693     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
5694     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
5695     eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
5696     eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
5697     eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
5698     eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
5699     eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
5700     eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
5701     eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
5702     eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
5703     eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
5704     eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
5705     eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
5706     eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
5707     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
5708     eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
5709     eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
5710     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
5711     eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
5712     eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR
5713   };
5714 
to_string(Format value)5715   VULKAN_HPP_INLINE std::string to_string( Format value )
5716   {
5717     switch ( value )
5718     {
5719       case Format::eUndefined : return "Undefined";
5720       case Format::eR4G4UnormPack8 : return "R4G4UnormPack8";
5721       case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16";
5722       case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16";
5723       case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16";
5724       case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16";
5725       case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16";
5726       case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16";
5727       case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16";
5728       case Format::eR8Unorm : return "R8Unorm";
5729       case Format::eR8Snorm : return "R8Snorm";
5730       case Format::eR8Uscaled : return "R8Uscaled";
5731       case Format::eR8Sscaled : return "R8Sscaled";
5732       case Format::eR8Uint : return "R8Uint";
5733       case Format::eR8Sint : return "R8Sint";
5734       case Format::eR8Srgb : return "R8Srgb";
5735       case Format::eR8G8Unorm : return "R8G8Unorm";
5736       case Format::eR8G8Snorm : return "R8G8Snorm";
5737       case Format::eR8G8Uscaled : return "R8G8Uscaled";
5738       case Format::eR8G8Sscaled : return "R8G8Sscaled";
5739       case Format::eR8G8Uint : return "R8G8Uint";
5740       case Format::eR8G8Sint : return "R8G8Sint";
5741       case Format::eR8G8Srgb : return "R8G8Srgb";
5742       case Format::eR8G8B8Unorm : return "R8G8B8Unorm";
5743       case Format::eR8G8B8Snorm : return "R8G8B8Snorm";
5744       case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled";
5745       case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled";
5746       case Format::eR8G8B8Uint : return "R8G8B8Uint";
5747       case Format::eR8G8B8Sint : return "R8G8B8Sint";
5748       case Format::eR8G8B8Srgb : return "R8G8B8Srgb";
5749       case Format::eB8G8R8Unorm : return "B8G8R8Unorm";
5750       case Format::eB8G8R8Snorm : return "B8G8R8Snorm";
5751       case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled";
5752       case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled";
5753       case Format::eB8G8R8Uint : return "B8G8R8Uint";
5754       case Format::eB8G8R8Sint : return "B8G8R8Sint";
5755       case Format::eB8G8R8Srgb : return "B8G8R8Srgb";
5756       case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm";
5757       case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm";
5758       case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled";
5759       case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled";
5760       case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint";
5761       case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint";
5762       case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb";
5763       case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm";
5764       case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm";
5765       case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled";
5766       case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled";
5767       case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint";
5768       case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint";
5769       case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb";
5770       case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32";
5771       case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32";
5772       case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32";
5773       case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32";
5774       case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32";
5775       case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32";
5776       case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32";
5777       case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32";
5778       case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32";
5779       case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32";
5780       case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32";
5781       case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32";
5782       case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32";
5783       case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32";
5784       case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32";
5785       case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32";
5786       case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32";
5787       case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32";
5788       case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32";
5789       case Format::eR16Unorm : return "R16Unorm";
5790       case Format::eR16Snorm : return "R16Snorm";
5791       case Format::eR16Uscaled : return "R16Uscaled";
5792       case Format::eR16Sscaled : return "R16Sscaled";
5793       case Format::eR16Uint : return "R16Uint";
5794       case Format::eR16Sint : return "R16Sint";
5795       case Format::eR16Sfloat : return "R16Sfloat";
5796       case Format::eR16G16Unorm : return "R16G16Unorm";
5797       case Format::eR16G16Snorm : return "R16G16Snorm";
5798       case Format::eR16G16Uscaled : return "R16G16Uscaled";
5799       case Format::eR16G16Sscaled : return "R16G16Sscaled";
5800       case Format::eR16G16Uint : return "R16G16Uint";
5801       case Format::eR16G16Sint : return "R16G16Sint";
5802       case Format::eR16G16Sfloat : return "R16G16Sfloat";
5803       case Format::eR16G16B16Unorm : return "R16G16B16Unorm";
5804       case Format::eR16G16B16Snorm : return "R16G16B16Snorm";
5805       case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled";
5806       case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled";
5807       case Format::eR16G16B16Uint : return "R16G16B16Uint";
5808       case Format::eR16G16B16Sint : return "R16G16B16Sint";
5809       case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat";
5810       case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm";
5811       case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm";
5812       case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled";
5813       case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled";
5814       case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint";
5815       case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint";
5816       case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat";
5817       case Format::eR32Uint : return "R32Uint";
5818       case Format::eR32Sint : return "R32Sint";
5819       case Format::eR32Sfloat : return "R32Sfloat";
5820       case Format::eR32G32Uint : return "R32G32Uint";
5821       case Format::eR32G32Sint : return "R32G32Sint";
5822       case Format::eR32G32Sfloat : return "R32G32Sfloat";
5823       case Format::eR32G32B32Uint : return "R32G32B32Uint";
5824       case Format::eR32G32B32Sint : return "R32G32B32Sint";
5825       case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat";
5826       case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint";
5827       case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint";
5828       case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat";
5829       case Format::eR64Uint : return "R64Uint";
5830       case Format::eR64Sint : return "R64Sint";
5831       case Format::eR64Sfloat : return "R64Sfloat";
5832       case Format::eR64G64Uint : return "R64G64Uint";
5833       case Format::eR64G64Sint : return "R64G64Sint";
5834       case Format::eR64G64Sfloat : return "R64G64Sfloat";
5835       case Format::eR64G64B64Uint : return "R64G64B64Uint";
5836       case Format::eR64G64B64Sint : return "R64G64B64Sint";
5837       case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat";
5838       case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint";
5839       case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint";
5840       case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat";
5841       case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32";
5842       case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32";
5843       case Format::eD16Unorm : return "D16Unorm";
5844       case Format::eX8D24UnormPack32 : return "X8D24UnormPack32";
5845       case Format::eD32Sfloat : return "D32Sfloat";
5846       case Format::eS8Uint : return "S8Uint";
5847       case Format::eD16UnormS8Uint : return "D16UnormS8Uint";
5848       case Format::eD24UnormS8Uint : return "D24UnormS8Uint";
5849       case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint";
5850       case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock";
5851       case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock";
5852       case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock";
5853       case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock";
5854       case Format::eBc2UnormBlock : return "Bc2UnormBlock";
5855       case Format::eBc2SrgbBlock : return "Bc2SrgbBlock";
5856       case Format::eBc3UnormBlock : return "Bc3UnormBlock";
5857       case Format::eBc3SrgbBlock : return "Bc3SrgbBlock";
5858       case Format::eBc4UnormBlock : return "Bc4UnormBlock";
5859       case Format::eBc4SnormBlock : return "Bc4SnormBlock";
5860       case Format::eBc5UnormBlock : return "Bc5UnormBlock";
5861       case Format::eBc5SnormBlock : return "Bc5SnormBlock";
5862       case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock";
5863       case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock";
5864       case Format::eBc7UnormBlock : return "Bc7UnormBlock";
5865       case Format::eBc7SrgbBlock : return "Bc7SrgbBlock";
5866       case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock";
5867       case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock";
5868       case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock";
5869       case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock";
5870       case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock";
5871       case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock";
5872       case Format::eEacR11UnormBlock : return "EacR11UnormBlock";
5873       case Format::eEacR11SnormBlock : return "EacR11SnormBlock";
5874       case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock";
5875       case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock";
5876       case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock";
5877       case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock";
5878       case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock";
5879       case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock";
5880       case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock";
5881       case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock";
5882       case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock";
5883       case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock";
5884       case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock";
5885       case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock";
5886       case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock";
5887       case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock";
5888       case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock";
5889       case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock";
5890       case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock";
5891       case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock";
5892       case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock";
5893       case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock";
5894       case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock";
5895       case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock";
5896       case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock";
5897       case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock";
5898       case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock";
5899       case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock";
5900       case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock";
5901       case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock";
5902       case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock";
5903       case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock";
5904       case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm";
5905       case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm";
5906       case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm";
5907       case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm";
5908       case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm";
5909       case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm";
5910       case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm";
5911       case Format::eR10X6UnormPack16 : return "R10X6UnormPack16";
5912       case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16";
5913       case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16";
5914       case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
5915       case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
5916       case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16";
5917       case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16";
5918       case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16";
5919       case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16";
5920       case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16";
5921       case Format::eR12X4UnormPack16 : return "R12X4UnormPack16";
5922       case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16";
5923       case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16";
5924       case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
5925       case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
5926       case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16";
5927       case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16";
5928       case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16";
5929       case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16";
5930       case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16";
5931       case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm";
5932       case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm";
5933       case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm";
5934       case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm";
5935       case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm";
5936       case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm";
5937       case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm";
5938       case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG";
5939       case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG";
5940       case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG";
5941       case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG";
5942       case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG";
5943       case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG";
5944       case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG";
5945       case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG";
5946       case Format::eAstc4x4SfloatBlockEXT : return "Astc4x4SfloatBlockEXT";
5947       case Format::eAstc5x4SfloatBlockEXT : return "Astc5x4SfloatBlockEXT";
5948       case Format::eAstc5x5SfloatBlockEXT : return "Astc5x5SfloatBlockEXT";
5949       case Format::eAstc6x5SfloatBlockEXT : return "Astc6x5SfloatBlockEXT";
5950       case Format::eAstc6x6SfloatBlockEXT : return "Astc6x6SfloatBlockEXT";
5951       case Format::eAstc8x5SfloatBlockEXT : return "Astc8x5SfloatBlockEXT";
5952       case Format::eAstc8x6SfloatBlockEXT : return "Astc8x6SfloatBlockEXT";
5953       case Format::eAstc8x8SfloatBlockEXT : return "Astc8x8SfloatBlockEXT";
5954       case Format::eAstc10x5SfloatBlockEXT : return "Astc10x5SfloatBlockEXT";
5955       case Format::eAstc10x6SfloatBlockEXT : return "Astc10x6SfloatBlockEXT";
5956       case Format::eAstc10x8SfloatBlockEXT : return "Astc10x8SfloatBlockEXT";
5957       case Format::eAstc10x10SfloatBlockEXT : return "Astc10x10SfloatBlockEXT";
5958       case Format::eAstc12x10SfloatBlockEXT : return "Astc12x10SfloatBlockEXT";
5959       case Format::eAstc12x12SfloatBlockEXT : return "Astc12x12SfloatBlockEXT";
5960       case Format::eA4R4G4B4UnormPack16EXT : return "A4R4G4B4UnormPack16EXT";
5961       case Format::eA4B4G4R4UnormPack16EXT : return "A4B4G4R4UnormPack16EXT";
5962       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5963     }
5964   }
5965 
5966   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
5967   {
5968     eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
5969     eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
5970     eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
5971     eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
5972     eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
5973     eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
5974     eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
5975     eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
5976     eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
5977     eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
5978     eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
5979     eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT,
5980     eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
5981     eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
5982     eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
5983     eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
5984     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
5985     eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
5986     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
5987     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
5988     eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT,
5989     eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
5990     eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
5991     eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
5992     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
5993     eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
5994     eFragmentShadingRateAttachmentKHR = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
5995     eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
5996     eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
5997     eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
5998     eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
5999     eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
6000     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
6001     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
6002     eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
6003     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
6004     eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
6005     eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
6006   };
6007 
to_string(FormatFeatureFlagBits value)6008   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
6009   {
6010     switch ( value )
6011     {
6012       case FormatFeatureFlagBits::eSampledImage : return "SampledImage";
6013       case FormatFeatureFlagBits::eStorageImage : return "StorageImage";
6014       case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic";
6015       case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
6016       case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
6017       case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic";
6018       case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer";
6019       case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment";
6020       case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend";
6021       case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
6022       case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc";
6023       case FormatFeatureFlagBits::eBlitDst : return "BlitDst";
6024       case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear";
6025       case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc";
6026       case FormatFeatureFlagBits::eTransferDst : return "TransferDst";
6027       case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples";
6028       case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter";
6029       case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter";
6030       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit";
6031       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
6032       case FormatFeatureFlagBits::eDisjoint : return "Disjoint";
6033       case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples";
6034       case FormatFeatureFlagBits::eSampledImageFilterMinmax : return "SampledImageFilterMinmax";
6035       case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG";
6036       case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR : return "AccelerationStructureVertexBufferKHR";
6037       case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
6038       case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR : return "FragmentShadingRateAttachmentKHR";
6039       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6040     }
6041   }
6042 
6043   enum class FragmentShadingRateCombinerOpKHR
6044   {
6045     eKeep = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,
6046     eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
6047     eMin = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,
6048     eMax = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,
6049     eMul = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
6050   };
6051 
to_string(FragmentShadingRateCombinerOpKHR value)6052   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateCombinerOpKHR value )
6053   {
6054     switch ( value )
6055     {
6056       case FragmentShadingRateCombinerOpKHR::eKeep : return "Keep";
6057       case FragmentShadingRateCombinerOpKHR::eReplace : return "Replace";
6058       case FragmentShadingRateCombinerOpKHR::eMin : return "Min";
6059       case FragmentShadingRateCombinerOpKHR::eMax : return "Max";
6060       case FragmentShadingRateCombinerOpKHR::eMul : return "Mul";
6061       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6062     }
6063   }
6064 
6065   enum class FragmentShadingRateNV
6066   {
6067     e1InvocationPerPixel = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,
6068     e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,
6069     e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,
6070     e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,
6071     e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,
6072     e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,
6073     e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,
6074     e2InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,
6075     e4InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,
6076     e8InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,
6077     e16InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,
6078     eNoInvocations = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
6079   };
6080 
to_string(FragmentShadingRateNV value)6081   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value )
6082   {
6083     switch ( value )
6084     {
6085       case FragmentShadingRateNV::e1InvocationPerPixel : return "1InvocationPerPixel";
6086       case FragmentShadingRateNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels";
6087       case FragmentShadingRateNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels";
6088       case FragmentShadingRateNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels";
6089       case FragmentShadingRateNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels";
6090       case FragmentShadingRateNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels";
6091       case FragmentShadingRateNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels";
6092       case FragmentShadingRateNV::e2InvocationsPerPixel : return "2InvocationsPerPixel";
6093       case FragmentShadingRateNV::e4InvocationsPerPixel : return "4InvocationsPerPixel";
6094       case FragmentShadingRateNV::e8InvocationsPerPixel : return "8InvocationsPerPixel";
6095       case FragmentShadingRateNV::e16InvocationsPerPixel : return "16InvocationsPerPixel";
6096       case FragmentShadingRateNV::eNoInvocations : return "NoInvocations";
6097       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6098     }
6099   }
6100 
6101   enum class FragmentShadingRateTypeNV
6102   {
6103     eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV,
6104     eEnums = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV
6105   };
6106 
to_string(FragmentShadingRateTypeNV value)6107   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateTypeNV value )
6108   {
6109     switch ( value )
6110     {
6111       case FragmentShadingRateTypeNV::eFragmentSize : return "FragmentSize";
6112       case FragmentShadingRateTypeNV::eEnums : return "Enums";
6113       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6114     }
6115   }
6116 
6117   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
6118   {
6119     eImageless = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
6120     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
6121   };
6122 
to_string(FramebufferCreateFlagBits value)6123   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
6124   {
6125     switch ( value )
6126     {
6127       case FramebufferCreateFlagBits::eImageless : return "Imageless";
6128       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6129     }
6130   }
6131 
6132   enum class FrontFace
6133   {
6134     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
6135     eClockwise = VK_FRONT_FACE_CLOCKWISE
6136   };
6137 
to_string(FrontFace value)6138   VULKAN_HPP_INLINE std::string to_string( FrontFace value )
6139   {
6140     switch ( value )
6141     {
6142       case FrontFace::eCounterClockwise : return "CounterClockwise";
6143       case FrontFace::eClockwise : return "Clockwise";
6144       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6145     }
6146   }
6147 
6148 #ifdef VK_USE_PLATFORM_WIN32_KHR
6149   enum class FullScreenExclusiveEXT
6150   {
6151     eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
6152     eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
6153     eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
6154     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
6155   };
6156 
to_string(FullScreenExclusiveEXT value)6157   VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
6158   {
6159     switch ( value )
6160     {
6161       case FullScreenExclusiveEXT::eDefault : return "Default";
6162       case FullScreenExclusiveEXT::eAllowed : return "Allowed";
6163       case FullScreenExclusiveEXT::eDisallowed : return "Disallowed";
6164       case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled";
6165       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6166     }
6167   }
6168 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
6169 
6170   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
6171   {
6172     eOpaque = VK_GEOMETRY_OPAQUE_BIT_KHR,
6173     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
6174   };
6175   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
6176 
to_string(GeometryFlagBitsKHR value)6177   VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value )
6178   {
6179     switch ( value )
6180     {
6181       case GeometryFlagBitsKHR::eOpaque : return "Opaque";
6182       case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation";
6183       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6184     }
6185   }
6186 
6187   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
6188   {
6189     eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
6190     eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
6191     eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
6192     eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
6193     eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV
6194   };
6195   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
6196 
to_string(GeometryInstanceFlagBitsKHR value)6197   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value )
6198   {
6199     switch ( value )
6200     {
6201       case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable : return "TriangleFacingCullDisable";
6202       case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise";
6203       case GeometryInstanceFlagBitsKHR::eForceOpaque : return "ForceOpaque";
6204       case GeometryInstanceFlagBitsKHR::eForceNoOpaque : return "ForceNoOpaque";
6205       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6206     }
6207   }
6208 
6209   enum class GeometryTypeKHR
6210   {
6211     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
6212     eAabbs = VK_GEOMETRY_TYPE_AABBS_KHR,
6213     eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
6214   };
6215   using GeometryTypeNV = GeometryTypeKHR;
6216 
to_string(GeometryTypeKHR value)6217   VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value )
6218   {
6219     switch ( value )
6220     {
6221       case GeometryTypeKHR::eTriangles : return "Triangles";
6222       case GeometryTypeKHR::eAabbs : return "Aabbs";
6223       case GeometryTypeKHR::eInstances : return "Instances";
6224       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6225     }
6226   }
6227 
6228   enum class ImageAspectFlagBits : VkImageAspectFlags
6229   {
6230     eColor = VK_IMAGE_ASPECT_COLOR_BIT,
6231     eDepth = VK_IMAGE_ASPECT_DEPTH_BIT,
6232     eStencil = VK_IMAGE_ASPECT_STENCIL_BIT,
6233     eMetadata = VK_IMAGE_ASPECT_METADATA_BIT,
6234     ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT,
6235     ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT,
6236     ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT,
6237     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
6238     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
6239     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
6240     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
6241     ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
6242     ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
6243     ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
6244   };
6245 
to_string(ImageAspectFlagBits value)6246   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
6247   {
6248     switch ( value )
6249     {
6250       case ImageAspectFlagBits::eColor : return "Color";
6251       case ImageAspectFlagBits::eDepth : return "Depth";
6252       case ImageAspectFlagBits::eStencil : return "Stencil";
6253       case ImageAspectFlagBits::eMetadata : return "Metadata";
6254       case ImageAspectFlagBits::ePlane0 : return "Plane0";
6255       case ImageAspectFlagBits::ePlane1 : return "Plane1";
6256       case ImageAspectFlagBits::ePlane2 : return "Plane2";
6257       case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT";
6258       case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT";
6259       case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT";
6260       case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT";
6261       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6262     }
6263   }
6264 
6265   enum class ImageCreateFlagBits : VkImageCreateFlags
6266   {
6267     eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
6268     eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
6269     eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
6270     eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
6271     eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
6272     eAlias = VK_IMAGE_CREATE_ALIAS_BIT,
6273     eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
6274     e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
6275     eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
6276     eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
6277     eProtected = VK_IMAGE_CREATE_PROTECTED_BIT,
6278     eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT,
6279     eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
6280     eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
6281     eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
6282     e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
6283     eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
6284     eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
6285     eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
6286     eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
6287     eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
6288   };
6289 
to_string(ImageCreateFlagBits value)6290   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
6291   {
6292     switch ( value )
6293     {
6294       case ImageCreateFlagBits::eSparseBinding : return "SparseBinding";
6295       case ImageCreateFlagBits::eSparseResidency : return "SparseResidency";
6296       case ImageCreateFlagBits::eSparseAliased : return "SparseAliased";
6297       case ImageCreateFlagBits::eMutableFormat : return "MutableFormat";
6298       case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible";
6299       case ImageCreateFlagBits::eAlias : return "Alias";
6300       case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
6301       case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible";
6302       case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible";
6303       case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage";
6304       case ImageCreateFlagBits::eProtected : return "Protected";
6305       case ImageCreateFlagBits::eDisjoint : return "Disjoint";
6306       case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV";
6307       case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT";
6308       case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
6309       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6310     }
6311   }
6312 
6313   enum class ImageLayout
6314   {
6315     eUndefined = VK_IMAGE_LAYOUT_UNDEFINED,
6316     eGeneral = VK_IMAGE_LAYOUT_GENERAL,
6317     eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
6318     eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
6319     eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
6320     eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
6321     eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
6322     eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
6323     ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED,
6324     eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
6325     eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
6326     eDepthAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
6327     eDepthReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
6328     eStencilAttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
6329     eStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
6330     ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
6331     eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
6332     eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
6333     eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
6334     eDepthAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
6335     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
6336     eDepthReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
6337     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
6338     eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
6339     eStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
6340     eStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
6341   };
6342 
to_string(ImageLayout value)6343   VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
6344   {
6345     switch ( value )
6346     {
6347       case ImageLayout::eUndefined : return "Undefined";
6348       case ImageLayout::eGeneral : return "General";
6349       case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal";
6350       case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal";
6351       case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal";
6352       case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal";
6353       case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal";
6354       case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal";
6355       case ImageLayout::ePreinitialized : return "Preinitialized";
6356       case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal";
6357       case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal";
6358       case ImageLayout::eDepthAttachmentOptimal : return "DepthAttachmentOptimal";
6359       case ImageLayout::eDepthReadOnlyOptimal : return "DepthReadOnlyOptimal";
6360       case ImageLayout::eStencilAttachmentOptimal : return "StencilAttachmentOptimal";
6361       case ImageLayout::eStencilReadOnlyOptimal : return "StencilReadOnlyOptimal";
6362       case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR";
6363       case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR";
6364       case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV";
6365       case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT";
6366       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6367     }
6368   }
6369 
6370   enum class ImageTiling
6371   {
6372     eOptimal = VK_IMAGE_TILING_OPTIMAL,
6373     eLinear = VK_IMAGE_TILING_LINEAR,
6374     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
6375   };
6376 
to_string(ImageTiling value)6377   VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
6378   {
6379     switch ( value )
6380     {
6381       case ImageTiling::eOptimal : return "Optimal";
6382       case ImageTiling::eLinear : return "Linear";
6383       case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT";
6384       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6385     }
6386   }
6387 
6388   enum class ImageType
6389   {
6390     e1D = VK_IMAGE_TYPE_1D,
6391     e2D = VK_IMAGE_TYPE_2D,
6392     e3D = VK_IMAGE_TYPE_3D
6393   };
6394 
to_string(ImageType value)6395   VULKAN_HPP_INLINE std::string to_string( ImageType value )
6396   {
6397     switch ( value )
6398     {
6399       case ImageType::e1D : return "1D";
6400       case ImageType::e2D : return "2D";
6401       case ImageType::e3D : return "3D";
6402       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6403     }
6404   }
6405 
6406   enum class ImageUsageFlagBits : VkImageUsageFlags
6407   {
6408     eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
6409     eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
6410     eSampled = VK_IMAGE_USAGE_SAMPLED_BIT,
6411     eStorage = VK_IMAGE_USAGE_STORAGE_BIT,
6412     eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
6413     eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
6414     eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
6415     eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
6416     eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
6417     eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
6418     eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
6419   };
6420 
to_string(ImageUsageFlagBits value)6421   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
6422   {
6423     switch ( value )
6424     {
6425       case ImageUsageFlagBits::eTransferSrc : return "TransferSrc";
6426       case ImageUsageFlagBits::eTransferDst : return "TransferDst";
6427       case ImageUsageFlagBits::eSampled : return "Sampled";
6428       case ImageUsageFlagBits::eStorage : return "Storage";
6429       case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment";
6430       case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
6431       case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment";
6432       case ImageUsageFlagBits::eInputAttachment : return "InputAttachment";
6433       case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
6434       case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
6435       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6436     }
6437   }
6438 
6439   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
6440   {
6441     eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,
6442     eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
6443   };
6444 
to_string(ImageViewCreateFlagBits value)6445   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
6446   {
6447     switch ( value )
6448     {
6449       case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT";
6450       case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT : return "FragmentDensityMapDeferredEXT";
6451       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6452     }
6453   }
6454 
6455   enum class ImageViewType
6456   {
6457     e1D = VK_IMAGE_VIEW_TYPE_1D,
6458     e2D = VK_IMAGE_VIEW_TYPE_2D,
6459     e3D = VK_IMAGE_VIEW_TYPE_3D,
6460     eCube = VK_IMAGE_VIEW_TYPE_CUBE,
6461     e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
6462     e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
6463     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
6464   };
6465 
to_string(ImageViewType value)6466   VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
6467   {
6468     switch ( value )
6469     {
6470       case ImageViewType::e1D : return "1D";
6471       case ImageViewType::e2D : return "2D";
6472       case ImageViewType::e3D : return "3D";
6473       case ImageViewType::eCube : return "Cube";
6474       case ImageViewType::e1DArray : return "1DArray";
6475       case ImageViewType::e2DArray : return "2DArray";
6476       case ImageViewType::eCubeArray : return "CubeArray";
6477       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6478     }
6479   }
6480 
6481   enum class IndexType
6482   {
6483     eUint16 = VK_INDEX_TYPE_UINT16,
6484     eUint32 = VK_INDEX_TYPE_UINT32,
6485     eNoneKHR = VK_INDEX_TYPE_NONE_KHR,
6486     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT,
6487     eNoneNV = VK_INDEX_TYPE_NONE_NV
6488   };
6489 
to_string(IndexType value)6490   VULKAN_HPP_INLINE std::string to_string( IndexType value )
6491   {
6492     switch ( value )
6493     {
6494       case IndexType::eUint16 : return "Uint16";
6495       case IndexType::eUint32 : return "Uint32";
6496       case IndexType::eNoneKHR : return "NoneKHR";
6497       case IndexType::eUint8EXT : return "Uint8EXT";
6498       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6499     }
6500   }
6501 
6502   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
6503   {
6504     eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
6505     eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
6506     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
6507   };
6508 
to_string(IndirectCommandsLayoutUsageFlagBitsNV value)6509   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value )
6510   {
6511     switch ( value )
6512     {
6513       case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess : return "ExplicitPreprocess";
6514       case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences : return "IndexedSequences";
6515       case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences : return "UnorderedSequences";
6516       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6517     }
6518   }
6519 
6520   enum class IndirectCommandsTokenTypeNV
6521   {
6522     eShaderGroup = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
6523     eStateFlags = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
6524     eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
6525     eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
6526     ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
6527     eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
6528     eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
6529     eDrawTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
6530   };
6531 
to_string(IndirectCommandsTokenTypeNV value)6532   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value )
6533   {
6534     switch ( value )
6535     {
6536       case IndirectCommandsTokenTypeNV::eShaderGroup : return "ShaderGroup";
6537       case IndirectCommandsTokenTypeNV::eStateFlags : return "StateFlags";
6538       case IndirectCommandsTokenTypeNV::eIndexBuffer : return "IndexBuffer";
6539       case IndirectCommandsTokenTypeNV::eVertexBuffer : return "VertexBuffer";
6540       case IndirectCommandsTokenTypeNV::ePushConstant : return "PushConstant";
6541       case IndirectCommandsTokenTypeNV::eDrawIndexed : return "DrawIndexed";
6542       case IndirectCommandsTokenTypeNV::eDraw : return "Draw";
6543       case IndirectCommandsTokenTypeNV::eDrawTasks : return "DrawTasks";
6544       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6545     }
6546   }
6547 
6548   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
6549   {
6550     eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
6551   };
6552 
to_string(IndirectStateFlagBitsNV value)6553   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value )
6554   {
6555     switch ( value )
6556     {
6557       case IndirectStateFlagBitsNV::eFlagFrontface : return "FlagFrontface";
6558       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6559     }
6560   }
6561 
6562   enum class InstanceCreateFlagBits
6563   {};
6564 
to_string(InstanceCreateFlagBits)6565   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
6566   {
6567     return "(void)";
6568   }
6569 
6570   enum class InternalAllocationType
6571   {
6572     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
6573   };
6574 
to_string(InternalAllocationType value)6575   VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
6576   {
6577     switch ( value )
6578     {
6579       case InternalAllocationType::eExecutable : return "Executable";
6580       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6581     }
6582   }
6583 
6584   enum class LineRasterizationModeEXT
6585   {
6586     eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
6587     eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
6588     eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
6589     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
6590   };
6591 
to_string(LineRasterizationModeEXT value)6592   VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value )
6593   {
6594     switch ( value )
6595     {
6596       case LineRasterizationModeEXT::eDefault : return "Default";
6597       case LineRasterizationModeEXT::eRectangular : return "Rectangular";
6598       case LineRasterizationModeEXT::eBresenham : return "Bresenham";
6599       case LineRasterizationModeEXT::eRectangularSmooth : return "RectangularSmooth";
6600       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6601     }
6602   }
6603 
6604   enum class LogicOp
6605   {
6606     eClear = VK_LOGIC_OP_CLEAR,
6607     eAnd = VK_LOGIC_OP_AND,
6608     eAndReverse = VK_LOGIC_OP_AND_REVERSE,
6609     eCopy = VK_LOGIC_OP_COPY,
6610     eAndInverted = VK_LOGIC_OP_AND_INVERTED,
6611     eNoOp = VK_LOGIC_OP_NO_OP,
6612     eXor = VK_LOGIC_OP_XOR,
6613     eOr = VK_LOGIC_OP_OR,
6614     eNor = VK_LOGIC_OP_NOR,
6615     eEquivalent = VK_LOGIC_OP_EQUIVALENT,
6616     eInvert = VK_LOGIC_OP_INVERT,
6617     eOrReverse = VK_LOGIC_OP_OR_REVERSE,
6618     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
6619     eOrInverted = VK_LOGIC_OP_OR_INVERTED,
6620     eNand = VK_LOGIC_OP_NAND,
6621     eSet = VK_LOGIC_OP_SET
6622   };
6623 
to_string(LogicOp value)6624   VULKAN_HPP_INLINE std::string to_string( LogicOp value )
6625   {
6626     switch ( value )
6627     {
6628       case LogicOp::eClear : return "Clear";
6629       case LogicOp::eAnd : return "And";
6630       case LogicOp::eAndReverse : return "AndReverse";
6631       case LogicOp::eCopy : return "Copy";
6632       case LogicOp::eAndInverted : return "AndInverted";
6633       case LogicOp::eNoOp : return "NoOp";
6634       case LogicOp::eXor : return "Xor";
6635       case LogicOp::eOr : return "Or";
6636       case LogicOp::eNor : return "Nor";
6637       case LogicOp::eEquivalent : return "Equivalent";
6638       case LogicOp::eInvert : return "Invert";
6639       case LogicOp::eOrReverse : return "OrReverse";
6640       case LogicOp::eCopyInverted : return "CopyInverted";
6641       case LogicOp::eOrInverted : return "OrInverted";
6642       case LogicOp::eNand : return "Nand";
6643       case LogicOp::eSet : return "Set";
6644       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6645     }
6646   }
6647 
6648   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
6649   {
6650     eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
6651     eDeviceAddress = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
6652     eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
6653   };
6654   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
6655 
to_string(MemoryAllocateFlagBits value)6656   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
6657   {
6658     switch ( value )
6659     {
6660       case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask";
6661       case MemoryAllocateFlagBits::eDeviceAddress : return "DeviceAddress";
6662       case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay";
6663       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6664     }
6665   }
6666 
6667   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
6668   {
6669     eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
6670     eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
6671     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
6672   };
6673 
to_string(MemoryHeapFlagBits value)6674   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
6675   {
6676     switch ( value )
6677     {
6678       case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal";
6679       case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance";
6680       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6681     }
6682   }
6683 
6684   enum class MemoryOverallocationBehaviorAMD
6685   {
6686     eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
6687     eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
6688     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
6689   };
6690 
to_string(MemoryOverallocationBehaviorAMD value)6691   VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
6692   {
6693     switch ( value )
6694     {
6695       case MemoryOverallocationBehaviorAMD::eDefault : return "Default";
6696       case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed";
6697       case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed";
6698       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6699     }
6700   }
6701 
6702   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
6703   {
6704     eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
6705     eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
6706     eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
6707     eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
6708     eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
6709     eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT,
6710     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
6711     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
6712   };
6713 
to_string(MemoryPropertyFlagBits value)6714   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
6715   {
6716     switch ( value )
6717     {
6718       case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal";
6719       case MemoryPropertyFlagBits::eHostVisible : return "HostVisible";
6720       case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent";
6721       case MemoryPropertyFlagBits::eHostCached : return "HostCached";
6722       case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated";
6723       case MemoryPropertyFlagBits::eProtected : return "Protected";
6724       case MemoryPropertyFlagBits::eDeviceCoherentAMD : return "DeviceCoherentAMD";
6725       case MemoryPropertyFlagBits::eDeviceUncachedAMD : return "DeviceUncachedAMD";
6726       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6727     }
6728   }
6729 
6730   enum class ObjectType
6731   {
6732     eUnknown = VK_OBJECT_TYPE_UNKNOWN,
6733     eInstance = VK_OBJECT_TYPE_INSTANCE,
6734     ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
6735     eDevice = VK_OBJECT_TYPE_DEVICE,
6736     eQueue = VK_OBJECT_TYPE_QUEUE,
6737     eSemaphore = VK_OBJECT_TYPE_SEMAPHORE,
6738     eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER,
6739     eFence = VK_OBJECT_TYPE_FENCE,
6740     eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY,
6741     eBuffer = VK_OBJECT_TYPE_BUFFER,
6742     eImage = VK_OBJECT_TYPE_IMAGE,
6743     eEvent = VK_OBJECT_TYPE_EVENT,
6744     eQueryPool = VK_OBJECT_TYPE_QUERY_POOL,
6745     eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW,
6746     eImageView = VK_OBJECT_TYPE_IMAGE_VIEW,
6747     eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE,
6748     ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE,
6749     ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
6750     eRenderPass = VK_OBJECT_TYPE_RENDER_PASS,
6751     ePipeline = VK_OBJECT_TYPE_PIPELINE,
6752     eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
6753     eSampler = VK_OBJECT_TYPE_SAMPLER,
6754     eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
6755     eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET,
6756     eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER,
6757     eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL,
6758     eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
6759     eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
6760     eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR,
6761     eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
6762     eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR,
6763     eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
6764     eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
6765     eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
6766     eAccelerationStructureKHR = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
6767     eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
6768     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
6769     eDeferredOperationKHR = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
6770     eIndirectCommandsLayoutNV = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
6771     ePrivateDataSlotEXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
6772     eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
6773     eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
6774     eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
6775   };
6776 
to_string(ObjectType value)6777   VULKAN_HPP_INLINE std::string to_string( ObjectType value )
6778   {
6779     switch ( value )
6780     {
6781       case ObjectType::eUnknown : return "Unknown";
6782       case ObjectType::eInstance : return "Instance";
6783       case ObjectType::ePhysicalDevice : return "PhysicalDevice";
6784       case ObjectType::eDevice : return "Device";
6785       case ObjectType::eQueue : return "Queue";
6786       case ObjectType::eSemaphore : return "Semaphore";
6787       case ObjectType::eCommandBuffer : return "CommandBuffer";
6788       case ObjectType::eFence : return "Fence";
6789       case ObjectType::eDeviceMemory : return "DeviceMemory";
6790       case ObjectType::eBuffer : return "Buffer";
6791       case ObjectType::eImage : return "Image";
6792       case ObjectType::eEvent : return "Event";
6793       case ObjectType::eQueryPool : return "QueryPool";
6794       case ObjectType::eBufferView : return "BufferView";
6795       case ObjectType::eImageView : return "ImageView";
6796       case ObjectType::eShaderModule : return "ShaderModule";
6797       case ObjectType::ePipelineCache : return "PipelineCache";
6798       case ObjectType::ePipelineLayout : return "PipelineLayout";
6799       case ObjectType::eRenderPass : return "RenderPass";
6800       case ObjectType::ePipeline : return "Pipeline";
6801       case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout";
6802       case ObjectType::eSampler : return "Sampler";
6803       case ObjectType::eDescriptorPool : return "DescriptorPool";
6804       case ObjectType::eDescriptorSet : return "DescriptorSet";
6805       case ObjectType::eFramebuffer : return "Framebuffer";
6806       case ObjectType::eCommandPool : return "CommandPool";
6807       case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
6808       case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
6809       case ObjectType::eSurfaceKHR : return "SurfaceKHR";
6810       case ObjectType::eSwapchainKHR : return "SwapchainKHR";
6811       case ObjectType::eDisplayKHR : return "DisplayKHR";
6812       case ObjectType::eDisplayModeKHR : return "DisplayModeKHR";
6813       case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
6814       case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT";
6815       case ObjectType::eAccelerationStructureKHR : return "AccelerationStructureKHR";
6816       case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT";
6817       case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL";
6818       case ObjectType::eDeferredOperationKHR : return "DeferredOperationKHR";
6819       case ObjectType::eIndirectCommandsLayoutNV : return "IndirectCommandsLayoutNV";
6820       case ObjectType::ePrivateDataSlotEXT : return "PrivateDataSlotEXT";
6821       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6822     }
6823   }
6824 
6825   template<ObjectType value>
6826   struct cpp_type
6827   {};
6828 
6829   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
6830   {
6831     eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
6832     eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
6833     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
6834     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
6835   };
6836   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
6837 
to_string(PeerMemoryFeatureFlagBits value)6838   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
6839   {
6840     switch ( value )
6841     {
6842       case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc";
6843       case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst";
6844       case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc";
6845       case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst";
6846       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6847     }
6848   }
6849 
6850   enum class PerformanceConfigurationTypeINTEL
6851   {
6852     eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
6853   };
6854 
to_string(PerformanceConfigurationTypeINTEL value)6855   VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
6856   {
6857     switch ( value )
6858     {
6859       case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated";
6860       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6861     }
6862   }
6863 
6864   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
6865   {
6866     ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
6867     eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR
6868   };
6869 
to_string(PerformanceCounterDescriptionFlagBitsKHR value)6870   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value )
6871   {
6872     switch ( value )
6873     {
6874       case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting : return "PerformanceImpacting";
6875       case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted : return "ConcurrentlyImpacted";
6876       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6877     }
6878   }
6879 
6880   enum class PerformanceCounterScopeKHR
6881   {
6882     eCommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
6883     eRenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
6884     eCommand = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
6885     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
6886     eVkQueryScopeCommand = VK_QUERY_SCOPE_COMMAND_KHR,
6887     eVkQueryScopeRenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR
6888   };
6889 
to_string(PerformanceCounterScopeKHR value)6890   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value )
6891   {
6892     switch ( value )
6893     {
6894       case PerformanceCounterScopeKHR::eCommandBuffer : return "CommandBuffer";
6895       case PerformanceCounterScopeKHR::eRenderPass : return "RenderPass";
6896       case PerformanceCounterScopeKHR::eCommand : return "Command";
6897       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6898     }
6899   }
6900 
6901   enum class PerformanceCounterStorageKHR
6902   {
6903     eInt32 = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
6904     eInt64 = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
6905     eUint32 = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
6906     eUint64 = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
6907     eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
6908     eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
6909   };
6910 
to_string(PerformanceCounterStorageKHR value)6911   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value )
6912   {
6913     switch ( value )
6914     {
6915       case PerformanceCounterStorageKHR::eInt32 : return "Int32";
6916       case PerformanceCounterStorageKHR::eInt64 : return "Int64";
6917       case PerformanceCounterStorageKHR::eUint32 : return "Uint32";
6918       case PerformanceCounterStorageKHR::eUint64 : return "Uint64";
6919       case PerformanceCounterStorageKHR::eFloat32 : return "Float32";
6920       case PerformanceCounterStorageKHR::eFloat64 : return "Float64";
6921       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6922     }
6923   }
6924 
6925   enum class PerformanceCounterUnitKHR
6926   {
6927     eGeneric = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
6928     ePercentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
6929     eNanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
6930     eBytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
6931     eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
6932     eKelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
6933     eWatts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
6934     eVolts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
6935     eAmps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
6936     eHertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
6937     eCycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
6938   };
6939 
to_string(PerformanceCounterUnitKHR value)6940   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value )
6941   {
6942     switch ( value )
6943     {
6944       case PerformanceCounterUnitKHR::eGeneric : return "Generic";
6945       case PerformanceCounterUnitKHR::ePercentage : return "Percentage";
6946       case PerformanceCounterUnitKHR::eNanoseconds : return "Nanoseconds";
6947       case PerformanceCounterUnitKHR::eBytes : return "Bytes";
6948       case PerformanceCounterUnitKHR::eBytesPerSecond : return "BytesPerSecond";
6949       case PerformanceCounterUnitKHR::eKelvin : return "Kelvin";
6950       case PerformanceCounterUnitKHR::eWatts : return "Watts";
6951       case PerformanceCounterUnitKHR::eVolts : return "Volts";
6952       case PerformanceCounterUnitKHR::eAmps : return "Amps";
6953       case PerformanceCounterUnitKHR::eHertz : return "Hertz";
6954       case PerformanceCounterUnitKHR::eCycles : return "Cycles";
6955       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6956     }
6957   }
6958 
6959   enum class PerformanceOverrideTypeINTEL
6960   {
6961     eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
6962     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
6963   };
6964 
to_string(PerformanceOverrideTypeINTEL value)6965   VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
6966   {
6967     switch ( value )
6968     {
6969       case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware";
6970       case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches";
6971       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6972     }
6973   }
6974 
6975   enum class PerformanceParameterTypeINTEL
6976   {
6977     eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
6978     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
6979   };
6980 
to_string(PerformanceParameterTypeINTEL value)6981   VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
6982   {
6983     switch ( value )
6984     {
6985       case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported";
6986       case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits";
6987       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6988     }
6989   }
6990 
6991   enum class PerformanceValueTypeINTEL
6992   {
6993     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
6994     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
6995     eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
6996     eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
6997     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
6998   };
6999 
to_string(PerformanceValueTypeINTEL value)7000   VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
7001   {
7002     switch ( value )
7003     {
7004       case PerformanceValueTypeINTEL::eUint32 : return "Uint32";
7005       case PerformanceValueTypeINTEL::eUint64 : return "Uint64";
7006       case PerformanceValueTypeINTEL::eFloat : return "Float";
7007       case PerformanceValueTypeINTEL::eBool : return "Bool";
7008       case PerformanceValueTypeINTEL::eString : return "String";
7009       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7010     }
7011   }
7012 
7013   enum class PhysicalDeviceType
7014   {
7015     eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER,
7016     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
7017     eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
7018     eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
7019     eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU
7020   };
7021 
to_string(PhysicalDeviceType value)7022   VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
7023   {
7024     switch ( value )
7025     {
7026       case PhysicalDeviceType::eOther : return "Other";
7027       case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu";
7028       case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu";
7029       case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu";
7030       case PhysicalDeviceType::eCpu : return "Cpu";
7031       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7032     }
7033   }
7034 
7035   enum class PipelineBindPoint
7036   {
7037     eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
7038     eCompute = VK_PIPELINE_BIND_POINT_COMPUTE,
7039     eRayTracingKHR = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
7040     eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
7041   };
7042 
to_string(PipelineBindPoint value)7043   VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
7044   {
7045     switch ( value )
7046     {
7047       case PipelineBindPoint::eGraphics : return "Graphics";
7048       case PipelineBindPoint::eCompute : return "Compute";
7049       case PipelineBindPoint::eRayTracingKHR : return "RayTracingKHR";
7050       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7051     }
7052   }
7053 
7054   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
7055   {
7056     eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
7057   };
7058 
to_string(PipelineCacheCreateFlagBits value)7059   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
7060   {
7061     switch ( value )
7062     {
7063       case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT : return "ExternallySynchronizedEXT";
7064       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7065     }
7066   }
7067 
7068   enum class PipelineCacheHeaderVersion
7069   {
7070     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
7071   };
7072 
to_string(PipelineCacheHeaderVersion value)7073   VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
7074   {
7075     switch ( value )
7076     {
7077       case PipelineCacheHeaderVersion::eOne : return "One";
7078       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7079     }
7080   }
7081 
7082   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
7083   {};
7084 
to_string(PipelineCompilerControlFlagBitsAMD)7085   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD )
7086   {
7087     return "(void)";
7088   }
7089 
7090   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
7091   {
7092     eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
7093     eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
7094     eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
7095     eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
7096     eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
7097     eRayTracingNoNullAnyHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
7098     eRayTracingNoNullClosestHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
7099     eRayTracingNoNullMissShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
7100     eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
7101     eRayTracingSkipTrianglesKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
7102     eRayTracingSkipAabbsKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
7103     eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
7104     eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
7105     eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
7106     eIndirectBindableNV = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
7107     eLibraryKHR = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
7108     eFailOnPipelineCompileRequiredEXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
7109     eEarlyReturnOnFailureEXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
7110     eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
7111     eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
7112   };
7113 
to_string(PipelineCreateFlagBits value)7114   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
7115   {
7116     switch ( value )
7117     {
7118       case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization";
7119       case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives";
7120       case PipelineCreateFlagBits::eDerivative : return "Derivative";
7121       case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex";
7122       case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase";
7123       case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR : return "RayTracingNoNullAnyHitShadersKHR";
7124       case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR : return "RayTracingNoNullClosestHitShadersKHR";
7125       case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR : return "RayTracingNoNullMissShadersKHR";
7126       case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR : return "RayTracingNoNullIntersectionShadersKHR";
7127       case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR : return "RayTracingSkipTrianglesKHR";
7128       case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR : return "RayTracingSkipAabbsKHR";
7129       case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV";
7130       case PipelineCreateFlagBits::eCaptureStatisticsKHR : return "CaptureStatisticsKHR";
7131       case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR : return "CaptureInternalRepresentationsKHR";
7132       case PipelineCreateFlagBits::eIndirectBindableNV : return "IndirectBindableNV";
7133       case PipelineCreateFlagBits::eLibraryKHR : return "LibraryKHR";
7134       case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT : return "FailOnPipelineCompileRequiredEXT";
7135       case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT : return "EarlyReturnOnFailureEXT";
7136       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7137     }
7138   }
7139 
7140   enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT
7141   {
7142     eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
7143     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
7144     eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
7145   };
7146 
to_string(PipelineCreationFeedbackFlagBitsEXT value)7147   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
7148   {
7149     switch ( value )
7150     {
7151       case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid";
7152       case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit";
7153       case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration";
7154       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7155     }
7156   }
7157 
7158   enum class PipelineExecutableStatisticFormatKHR
7159   {
7160     eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
7161     eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
7162     eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
7163     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
7164   };
7165 
to_string(PipelineExecutableStatisticFormatKHR value)7166   VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value )
7167   {
7168     switch ( value )
7169     {
7170       case PipelineExecutableStatisticFormatKHR::eBool32 : return "Bool32";
7171       case PipelineExecutableStatisticFormatKHR::eInt64 : return "Int64";
7172       case PipelineExecutableStatisticFormatKHR::eUint64 : return "Uint64";
7173       case PipelineExecutableStatisticFormatKHR::eFloat64 : return "Float64";
7174       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7175     }
7176   }
7177 
7178   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
7179   {
7180     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
7181     eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
7182   };
7183 
to_string(PipelineShaderStageCreateFlagBits value)7184   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value )
7185   {
7186     switch ( value )
7187     {
7188       case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT : return "AllowVaryingSubgroupSizeEXT";
7189       case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT : return "RequireFullSubgroupsEXT";
7190       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7191     }
7192   }
7193 
7194   enum class PipelineStageFlagBits : VkPipelineStageFlags
7195   {
7196     eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
7197     eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
7198     eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
7199     eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
7200     eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
7201     eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
7202     eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
7203     eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
7204     eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
7205     eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
7206     eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
7207     eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
7208     eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT,
7209     eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
7210     eHost = VK_PIPELINE_STAGE_HOST_BIT,
7211     eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
7212     eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
7213     eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
7214     eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
7215     eRayTracingShaderKHR = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
7216     eAccelerationStructureBuildKHR = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
7217     eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
7218     eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
7219     eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
7220     eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
7221     eCommandPreprocessNV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
7222     eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
7223     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
7224     eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV
7225   };
7226 
to_string(PipelineStageFlagBits value)7227   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
7228   {
7229     switch ( value )
7230     {
7231       case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe";
7232       case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect";
7233       case PipelineStageFlagBits::eVertexInput : return "VertexInput";
7234       case PipelineStageFlagBits::eVertexShader : return "VertexShader";
7235       case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader";
7236       case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader";
7237       case PipelineStageFlagBits::eGeometryShader : return "GeometryShader";
7238       case PipelineStageFlagBits::eFragmentShader : return "FragmentShader";
7239       case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests";
7240       case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests";
7241       case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput";
7242       case PipelineStageFlagBits::eComputeShader : return "ComputeShader";
7243       case PipelineStageFlagBits::eTransfer : return "Transfer";
7244       case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe";
7245       case PipelineStageFlagBits::eHost : return "Host";
7246       case PipelineStageFlagBits::eAllGraphics : return "AllGraphics";
7247       case PipelineStageFlagBits::eAllCommands : return "AllCommands";
7248       case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT";
7249       case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
7250       case PipelineStageFlagBits::eRayTracingShaderKHR : return "RayTracingShaderKHR";
7251       case PipelineStageFlagBits::eAccelerationStructureBuildKHR : return "AccelerationStructureBuildKHR";
7252       case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
7253       case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV";
7254       case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV";
7255       case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT";
7256       case PipelineStageFlagBits::eCommandPreprocessNV : return "CommandPreprocessNV";
7257       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7258     }
7259   }
7260 
7261   enum class PointClippingBehavior
7262   {
7263     eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
7264     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
7265   };
7266   using PointClippingBehaviorKHR = PointClippingBehavior;
7267 
to_string(PointClippingBehavior value)7268   VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
7269   {
7270     switch ( value )
7271     {
7272       case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes";
7273       case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly";
7274       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7275     }
7276   }
7277 
7278   enum class PolygonMode
7279   {
7280     eFill = VK_POLYGON_MODE_FILL,
7281     eLine = VK_POLYGON_MODE_LINE,
7282     ePoint = VK_POLYGON_MODE_POINT,
7283     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
7284   };
7285 
to_string(PolygonMode value)7286   VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
7287   {
7288     switch ( value )
7289     {
7290       case PolygonMode::eFill : return "Fill";
7291       case PolygonMode::eLine : return "Line";
7292       case PolygonMode::ePoint : return "Point";
7293       case PolygonMode::eFillRectangleNV : return "FillRectangleNV";
7294       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7295     }
7296   }
7297 
7298   enum class PresentModeKHR
7299   {
7300     eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR,
7301     eMailbox = VK_PRESENT_MODE_MAILBOX_KHR,
7302     eFifo = VK_PRESENT_MODE_FIFO_KHR,
7303     eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
7304     eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
7305     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
7306   };
7307 
to_string(PresentModeKHR value)7308   VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
7309   {
7310     switch ( value )
7311     {
7312       case PresentModeKHR::eImmediate : return "Immediate";
7313       case PresentModeKHR::eMailbox : return "Mailbox";
7314       case PresentModeKHR::eFifo : return "Fifo";
7315       case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed";
7316       case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh";
7317       case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh";
7318       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7319     }
7320   }
7321 
7322   enum class PrimitiveTopology
7323   {
7324     ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
7325     eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
7326     eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
7327     eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
7328     eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
7329     eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
7330     eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
7331     eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
7332     eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
7333     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
7334     ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
7335   };
7336 
to_string(PrimitiveTopology value)7337   VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
7338   {
7339     switch ( value )
7340     {
7341       case PrimitiveTopology::ePointList : return "PointList";
7342       case PrimitiveTopology::eLineList : return "LineList";
7343       case PrimitiveTopology::eLineStrip : return "LineStrip";
7344       case PrimitiveTopology::eTriangleList : return "TriangleList";
7345       case PrimitiveTopology::eTriangleStrip : return "TriangleStrip";
7346       case PrimitiveTopology::eTriangleFan : return "TriangleFan";
7347       case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency";
7348       case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency";
7349       case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency";
7350       case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency";
7351       case PrimitiveTopology::ePatchList : return "PatchList";
7352       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7353     }
7354   }
7355 
7356   enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT
7357   {};
7358 
to_string(PrivateDataSlotCreateFlagBitsEXT)7359   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT )
7360   {
7361     return "(void)";
7362   }
7363 
7364   enum class QueryControlFlagBits : VkQueryControlFlags
7365   {
7366     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
7367   };
7368 
to_string(QueryControlFlagBits value)7369   VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
7370   {
7371     switch ( value )
7372     {
7373       case QueryControlFlagBits::ePrecise : return "Precise";
7374       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7375     }
7376   }
7377 
7378   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
7379   {
7380     eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
7381     eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
7382     eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
7383     eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
7384     eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
7385     eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
7386     eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
7387     eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
7388     eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
7389     eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
7390     eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
7391   };
7392 
to_string(QueryPipelineStatisticFlagBits value)7393   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
7394   {
7395     switch ( value )
7396     {
7397       case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices";
7398       case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives";
7399       case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations";
7400       case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations";
7401       case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives";
7402       case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations";
7403       case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives";
7404       case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations";
7405       case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches";
7406       case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations";
7407       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations";
7408       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7409     }
7410   }
7411 
7412   enum class QueryPoolCreateFlagBits
7413   {};
7414 
to_string(QueryPoolCreateFlagBits)7415   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
7416   {
7417     return "(void)";
7418   }
7419 
7420   enum class QueryPoolSamplingModeINTEL
7421   {
7422     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
7423   };
7424 
to_string(QueryPoolSamplingModeINTEL value)7425   VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
7426   {
7427     switch ( value )
7428     {
7429       case QueryPoolSamplingModeINTEL::eManual : return "Manual";
7430       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7431     }
7432   }
7433 
7434   enum class QueryResultFlagBits : VkQueryResultFlags
7435   {
7436     e64 = VK_QUERY_RESULT_64_BIT,
7437     eWait = VK_QUERY_RESULT_WAIT_BIT,
7438     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
7439     ePartial = VK_QUERY_RESULT_PARTIAL_BIT
7440   };
7441 
to_string(QueryResultFlagBits value)7442   VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
7443   {
7444     switch ( value )
7445     {
7446       case QueryResultFlagBits::e64 : return "64";
7447       case QueryResultFlagBits::eWait : return "Wait";
7448       case QueryResultFlagBits::eWithAvailability : return "WithAvailability";
7449       case QueryResultFlagBits::ePartial : return "Partial";
7450       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7451     }
7452   }
7453 
7454   enum class QueryType
7455   {
7456     eOcclusion = VK_QUERY_TYPE_OCCLUSION,
7457     ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
7458     eTimestamp = VK_QUERY_TYPE_TIMESTAMP,
7459     eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
7460     ePerformanceQueryKHR = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
7461     eAccelerationStructureCompactedSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
7462     eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
7463     ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
7464     eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
7465   };
7466 
to_string(QueryType value)7467   VULKAN_HPP_INLINE std::string to_string( QueryType value )
7468   {
7469     switch ( value )
7470     {
7471       case QueryType::eOcclusion : return "Occlusion";
7472       case QueryType::ePipelineStatistics : return "PipelineStatistics";
7473       case QueryType::eTimestamp : return "Timestamp";
7474       case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT";
7475       case QueryType::ePerformanceQueryKHR : return "PerformanceQueryKHR";
7476       case QueryType::eAccelerationStructureCompactedSizeKHR : return "AccelerationStructureCompactedSizeKHR";
7477       case QueryType::eAccelerationStructureSerializationSizeKHR : return "AccelerationStructureSerializationSizeKHR";
7478       case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL";
7479       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7480     }
7481   }
7482 
7483   enum class QueueFlagBits : VkQueueFlags
7484   {
7485     eGraphics = VK_QUEUE_GRAPHICS_BIT,
7486     eCompute = VK_QUEUE_COMPUTE_BIT,
7487     eTransfer = VK_QUEUE_TRANSFER_BIT,
7488     eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
7489     eProtected = VK_QUEUE_PROTECTED_BIT
7490   };
7491 
to_string(QueueFlagBits value)7492   VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
7493   {
7494     switch ( value )
7495     {
7496       case QueueFlagBits::eGraphics : return "Graphics";
7497       case QueueFlagBits::eCompute : return "Compute";
7498       case QueueFlagBits::eTransfer : return "Transfer";
7499       case QueueFlagBits::eSparseBinding : return "SparseBinding";
7500       case QueueFlagBits::eProtected : return "Protected";
7501       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7502     }
7503   }
7504 
7505   enum class QueueGlobalPriorityEXT
7506   {
7507     eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
7508     eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
7509     eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
7510     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
7511   };
7512 
to_string(QueueGlobalPriorityEXT value)7513   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
7514   {
7515     switch ( value )
7516     {
7517       case QueueGlobalPriorityEXT::eLow : return "Low";
7518       case QueueGlobalPriorityEXT::eMedium : return "Medium";
7519       case QueueGlobalPriorityEXT::eHigh : return "High";
7520       case QueueGlobalPriorityEXT::eRealtime : return "Realtime";
7521       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7522     }
7523   }
7524 
7525   enum class RasterizationOrderAMD
7526   {
7527     eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD,
7528     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
7529   };
7530 
to_string(RasterizationOrderAMD value)7531   VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
7532   {
7533     switch ( value )
7534     {
7535       case RasterizationOrderAMD::eStrict : return "Strict";
7536       case RasterizationOrderAMD::eRelaxed : return "Relaxed";
7537       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7538     }
7539   }
7540 
7541   enum class RayTracingShaderGroupTypeKHR
7542   {
7543     eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
7544     eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
7545     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
7546   };
7547   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
7548 
to_string(RayTracingShaderGroupTypeKHR value)7549   VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
7550   {
7551     switch ( value )
7552     {
7553       case RayTracingShaderGroupTypeKHR::eGeneral : return "General";
7554       case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup : return "TrianglesHitGroup";
7555       case RayTracingShaderGroupTypeKHR::eProceduralHitGroup : return "ProceduralHitGroup";
7556       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7557     }
7558   }
7559 
7560   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
7561   {
7562     eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
7563   };
7564 
to_string(RenderPassCreateFlagBits value)7565   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value )
7566   {
7567     switch ( value )
7568     {
7569       case RenderPassCreateFlagBits::eTransformQCOM : return "TransformQCOM";
7570       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7571     }
7572   }
7573 
7574   enum class ResolveModeFlagBits : VkResolveModeFlags
7575   {
7576     eNone = VK_RESOLVE_MODE_NONE,
7577     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
7578     eAverage = VK_RESOLVE_MODE_AVERAGE_BIT,
7579     eMin = VK_RESOLVE_MODE_MIN_BIT,
7580     eMax = VK_RESOLVE_MODE_MAX_BIT
7581   };
7582   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
7583 
to_string(ResolveModeFlagBits value)7584   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value )
7585   {
7586     switch ( value )
7587     {
7588       case ResolveModeFlagBits::eNone : return "None";
7589       case ResolveModeFlagBits::eSampleZero : return "SampleZero";
7590       case ResolveModeFlagBits::eAverage : return "Average";
7591       case ResolveModeFlagBits::eMin : return "Min";
7592       case ResolveModeFlagBits::eMax : return "Max";
7593       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7594     }
7595   }
7596 
7597   enum class Result
7598   {
7599     eSuccess = VK_SUCCESS,
7600     eNotReady = VK_NOT_READY,
7601     eTimeout = VK_TIMEOUT,
7602     eEventSet = VK_EVENT_SET,
7603     eEventReset = VK_EVENT_RESET,
7604     eIncomplete = VK_INCOMPLETE,
7605     eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY,
7606     eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY,
7607     eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED,
7608     eErrorDeviceLost = VK_ERROR_DEVICE_LOST,
7609     eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED,
7610     eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT,
7611     eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT,
7612     eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT,
7613     eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER,
7614     eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS,
7615     eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED,
7616     eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL,
7617     eErrorUnknown = VK_ERROR_UNKNOWN,
7618     eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY,
7619     eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE,
7620     eErrorFragmentation = VK_ERROR_FRAGMENTATION,
7621     eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
7622     eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR,
7623     eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
7624     eSuboptimalKHR = VK_SUBOPTIMAL_KHR,
7625     eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR,
7626     eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
7627     eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT,
7628     eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV,
7629     eErrorIncompatibleVersionKHR = VK_ERROR_INCOMPATIBLE_VERSION_KHR,
7630     eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
7631     eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT,
7632     eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
7633     eThreadIdleKHR = VK_THREAD_IDLE_KHR,
7634     eThreadDoneKHR = VK_THREAD_DONE_KHR,
7635     eOperationDeferredKHR = VK_OPERATION_DEFERRED_KHR,
7636     eOperationNotDeferredKHR = VK_OPERATION_NOT_DEFERRED_KHR,
7637     ePipelineCompileRequiredEXT = VK_PIPELINE_COMPILE_REQUIRED_EXT,
7638     eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT,
7639     eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
7640     eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
7641     eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
7642     eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
7643     eErrorPipelineCompileRequiredEXT = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT
7644   };
7645 
to_string(Result value)7646   VULKAN_HPP_INLINE std::string to_string( Result value )
7647   {
7648     switch ( value )
7649     {
7650       case Result::eSuccess : return "Success";
7651       case Result::eNotReady : return "NotReady";
7652       case Result::eTimeout : return "Timeout";
7653       case Result::eEventSet : return "EventSet";
7654       case Result::eEventReset : return "EventReset";
7655       case Result::eIncomplete : return "Incomplete";
7656       case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory";
7657       case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory";
7658       case Result::eErrorInitializationFailed : return "ErrorInitializationFailed";
7659       case Result::eErrorDeviceLost : return "ErrorDeviceLost";
7660       case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed";
7661       case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent";
7662       case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent";
7663       case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent";
7664       case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver";
7665       case Result::eErrorTooManyObjects : return "ErrorTooManyObjects";
7666       case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported";
7667       case Result::eErrorFragmentedPool : return "ErrorFragmentedPool";
7668       case Result::eErrorUnknown : return "ErrorUnknown";
7669       case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory";
7670       case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle";
7671       case Result::eErrorFragmentation : return "ErrorFragmentation";
7672       case Result::eErrorInvalidOpaqueCaptureAddress : return "ErrorInvalidOpaqueCaptureAddress";
7673       case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR";
7674       case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR";
7675       case Result::eSuboptimalKHR : return "SuboptimalKHR";
7676       case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR";
7677       case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR";
7678       case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT";
7679       case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV";
7680       case Result::eErrorIncompatibleVersionKHR : return "ErrorIncompatibleVersionKHR";
7681       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT";
7682       case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT";
7683       case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT";
7684       case Result::eThreadIdleKHR : return "ThreadIdleKHR";
7685       case Result::eThreadDoneKHR : return "ThreadDoneKHR";
7686       case Result::eOperationDeferredKHR : return "OperationDeferredKHR";
7687       case Result::eOperationNotDeferredKHR : return "OperationNotDeferredKHR";
7688       case Result::ePipelineCompileRequiredEXT : return "PipelineCompileRequiredEXT";
7689       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7690     }
7691   }
7692 
7693   enum class SampleCountFlagBits : VkSampleCountFlags
7694   {
7695     e1 = VK_SAMPLE_COUNT_1_BIT,
7696     e2 = VK_SAMPLE_COUNT_2_BIT,
7697     e4 = VK_SAMPLE_COUNT_4_BIT,
7698     e8 = VK_SAMPLE_COUNT_8_BIT,
7699     e16 = VK_SAMPLE_COUNT_16_BIT,
7700     e32 = VK_SAMPLE_COUNT_32_BIT,
7701     e64 = VK_SAMPLE_COUNT_64_BIT
7702   };
7703 
to_string(SampleCountFlagBits value)7704   VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
7705   {
7706     switch ( value )
7707     {
7708       case SampleCountFlagBits::e1 : return "1";
7709       case SampleCountFlagBits::e2 : return "2";
7710       case SampleCountFlagBits::e4 : return "4";
7711       case SampleCountFlagBits::e8 : return "8";
7712       case SampleCountFlagBits::e16 : return "16";
7713       case SampleCountFlagBits::e32 : return "32";
7714       case SampleCountFlagBits::e64 : return "64";
7715       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7716     }
7717   }
7718 
7719   enum class SamplerAddressMode
7720   {
7721     eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT,
7722     eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
7723     eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
7724     eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
7725     eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
7726     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
7727   };
7728 
to_string(SamplerAddressMode value)7729   VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
7730   {
7731     switch ( value )
7732     {
7733       case SamplerAddressMode::eRepeat : return "Repeat";
7734       case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat";
7735       case SamplerAddressMode::eClampToEdge : return "ClampToEdge";
7736       case SamplerAddressMode::eClampToBorder : return "ClampToBorder";
7737       case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge";
7738       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7739     }
7740   }
7741 
7742   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
7743   {
7744     eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
7745     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
7746   };
7747 
to_string(SamplerCreateFlagBits value)7748   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
7749   {
7750     switch ( value )
7751     {
7752       case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
7753       case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT";
7754       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7755     }
7756   }
7757 
7758   enum class SamplerMipmapMode
7759   {
7760     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
7761     eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR
7762   };
7763 
to_string(SamplerMipmapMode value)7764   VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
7765   {
7766     switch ( value )
7767     {
7768       case SamplerMipmapMode::eNearest : return "Nearest";
7769       case SamplerMipmapMode::eLinear : return "Linear";
7770       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7771     }
7772   }
7773 
7774   enum class SamplerReductionMode
7775   {
7776     eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
7777     eMin = VK_SAMPLER_REDUCTION_MODE_MIN,
7778     eMax = VK_SAMPLER_REDUCTION_MODE_MAX
7779   };
7780   using SamplerReductionModeEXT = SamplerReductionMode;
7781 
to_string(SamplerReductionMode value)7782   VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value )
7783   {
7784     switch ( value )
7785     {
7786       case SamplerReductionMode::eWeightedAverage : return "WeightedAverage";
7787       case SamplerReductionMode::eMin : return "Min";
7788       case SamplerReductionMode::eMax : return "Max";
7789       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7790     }
7791   }
7792 
7793   enum class SamplerYcbcrModelConversion
7794   {
7795     eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
7796     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
7797     eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
7798     eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
7799     eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
7800   };
7801   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
7802 
to_string(SamplerYcbcrModelConversion value)7803   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
7804   {
7805     switch ( value )
7806     {
7807       case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity";
7808       case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity";
7809       case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709";
7810       case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601";
7811       case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020";
7812       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7813     }
7814   }
7815 
7816   enum class SamplerYcbcrRange
7817   {
7818     eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
7819     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
7820   };
7821   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
7822 
to_string(SamplerYcbcrRange value)7823   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
7824   {
7825     switch ( value )
7826     {
7827       case SamplerYcbcrRange::eItuFull : return "ItuFull";
7828       case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow";
7829       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7830     }
7831   }
7832 
7833   enum class ScopeNV
7834   {
7835     eDevice = VK_SCOPE_DEVICE_NV,
7836     eWorkgroup = VK_SCOPE_WORKGROUP_NV,
7837     eSubgroup = VK_SCOPE_SUBGROUP_NV,
7838     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
7839   };
7840 
to_string(ScopeNV value)7841   VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
7842   {
7843     switch ( value )
7844     {
7845       case ScopeNV::eDevice : return "Device";
7846       case ScopeNV::eWorkgroup : return "Workgroup";
7847       case ScopeNV::eSubgroup : return "Subgroup";
7848       case ScopeNV::eQueueFamily : return "QueueFamily";
7849       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7850     }
7851   }
7852 
7853   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
7854   {};
7855 
to_string(SemaphoreCreateFlagBits)7856   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
7857   {
7858     return "(void)";
7859   }
7860 
7861   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
7862   {
7863     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
7864   };
7865   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
7866 
to_string(SemaphoreImportFlagBits value)7867   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
7868   {
7869     switch ( value )
7870     {
7871       case SemaphoreImportFlagBits::eTemporary : return "Temporary";
7872       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7873     }
7874   }
7875 
7876   enum class SemaphoreType
7877   {
7878     eBinary = VK_SEMAPHORE_TYPE_BINARY,
7879     eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
7880   };
7881   using SemaphoreTypeKHR = SemaphoreType;
7882 
to_string(SemaphoreType value)7883   VULKAN_HPP_INLINE std::string to_string( SemaphoreType value )
7884   {
7885     switch ( value )
7886     {
7887       case SemaphoreType::eBinary : return "Binary";
7888       case SemaphoreType::eTimeline : return "Timeline";
7889       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7890     }
7891   }
7892 
7893   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
7894   {
7895     eAny = VK_SEMAPHORE_WAIT_ANY_BIT
7896   };
7897   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
7898 
to_string(SemaphoreWaitFlagBits value)7899   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value )
7900   {
7901     switch ( value )
7902     {
7903       case SemaphoreWaitFlagBits::eAny : return "Any";
7904       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7905     }
7906   }
7907 
7908   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
7909   {};
7910 
to_string(ShaderCorePropertiesFlagBitsAMD)7911   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD )
7912   {
7913     return "(void)";
7914   }
7915 
7916   enum class ShaderFloatControlsIndependence
7917   {
7918     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
7919     eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
7920     eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
7921   };
7922   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
7923 
to_string(ShaderFloatControlsIndependence value)7924   VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value )
7925   {
7926     switch ( value )
7927     {
7928       case ShaderFloatControlsIndependence::e32BitOnly : return "32BitOnly";
7929       case ShaderFloatControlsIndependence::eAll : return "All";
7930       case ShaderFloatControlsIndependence::eNone : return "None";
7931       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7932     }
7933   }
7934 
7935   enum class ShaderInfoTypeAMD
7936   {
7937     eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
7938     eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD,
7939     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
7940   };
7941 
to_string(ShaderInfoTypeAMD value)7942   VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
7943   {
7944     switch ( value )
7945     {
7946       case ShaderInfoTypeAMD::eStatistics : return "Statistics";
7947       case ShaderInfoTypeAMD::eBinary : return "Binary";
7948       case ShaderInfoTypeAMD::eDisassembly : return "Disassembly";
7949       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7950     }
7951   }
7952 
7953   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
7954   {};
7955 
to_string(ShaderModuleCreateFlagBits)7956   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
7957   {
7958     return "(void)";
7959   }
7960 
7961   enum class ShaderStageFlagBits : VkShaderStageFlags
7962   {
7963     eVertex = VK_SHADER_STAGE_VERTEX_BIT,
7964     eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
7965     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
7966     eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT,
7967     eFragment = VK_SHADER_STAGE_FRAGMENT_BIT,
7968     eCompute = VK_SHADER_STAGE_COMPUTE_BIT,
7969     eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS,
7970     eAll = VK_SHADER_STAGE_ALL,
7971     eRaygenKHR = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
7972     eAnyHitKHR = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
7973     eClosestHitKHR = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
7974     eMissKHR = VK_SHADER_STAGE_MISS_BIT_KHR,
7975     eIntersectionKHR = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
7976     eCallableKHR = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
7977     eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV,
7978     eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV,
7979     eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
7980     eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV,
7981     eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
7982     eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
7983     eMissNV = VK_SHADER_STAGE_MISS_BIT_NV,
7984     eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV
7985   };
7986 
to_string(ShaderStageFlagBits value)7987   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
7988   {
7989     switch ( value )
7990     {
7991       case ShaderStageFlagBits::eVertex : return "Vertex";
7992       case ShaderStageFlagBits::eTessellationControl : return "TessellationControl";
7993       case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation";
7994       case ShaderStageFlagBits::eGeometry : return "Geometry";
7995       case ShaderStageFlagBits::eFragment : return "Fragment";
7996       case ShaderStageFlagBits::eCompute : return "Compute";
7997       case ShaderStageFlagBits::eAllGraphics : return "AllGraphics";
7998       case ShaderStageFlagBits::eAll : return "All";
7999       case ShaderStageFlagBits::eRaygenKHR : return "RaygenKHR";
8000       case ShaderStageFlagBits::eAnyHitKHR : return "AnyHitKHR";
8001       case ShaderStageFlagBits::eClosestHitKHR : return "ClosestHitKHR";
8002       case ShaderStageFlagBits::eMissKHR : return "MissKHR";
8003       case ShaderStageFlagBits::eIntersectionKHR : return "IntersectionKHR";
8004       case ShaderStageFlagBits::eCallableKHR : return "CallableKHR";
8005       case ShaderStageFlagBits::eTaskNV : return "TaskNV";
8006       case ShaderStageFlagBits::eMeshNV : return "MeshNV";
8007       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8008     }
8009   }
8010 
8011   enum class ShadingRatePaletteEntryNV
8012   {
8013     eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
8014     e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
8015     e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
8016     e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
8017     e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
8018     e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
8019     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
8020     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
8021     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
8022     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
8023     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
8024     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
8025   };
8026 
to_string(ShadingRatePaletteEntryNV value)8027   VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
8028   {
8029     switch ( value )
8030     {
8031       case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations";
8032       case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel";
8033       case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel";
8034       case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel";
8035       case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel";
8036       case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel";
8037       case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels";
8038       case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels";
8039       case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels";
8040       case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels";
8041       case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels";
8042       case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels";
8043       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8044     }
8045   }
8046 
8047   enum class SharingMode
8048   {
8049     eExclusive = VK_SHARING_MODE_EXCLUSIVE,
8050     eConcurrent = VK_SHARING_MODE_CONCURRENT
8051   };
8052 
to_string(SharingMode value)8053   VULKAN_HPP_INLINE std::string to_string( SharingMode value )
8054   {
8055     switch ( value )
8056     {
8057       case SharingMode::eExclusive : return "Exclusive";
8058       case SharingMode::eConcurrent : return "Concurrent";
8059       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8060     }
8061   }
8062 
8063   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
8064   {
8065     eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
8066     eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
8067     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
8068   };
8069 
to_string(SparseImageFormatFlagBits value)8070   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
8071   {
8072     switch ( value )
8073     {
8074       case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail";
8075       case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize";
8076       case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize";
8077       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8078     }
8079   }
8080 
8081   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
8082   {
8083     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
8084   };
8085 
to_string(SparseMemoryBindFlagBits value)8086   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
8087   {
8088     switch ( value )
8089     {
8090       case SparseMemoryBindFlagBits::eMetadata : return "Metadata";
8091       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8092     }
8093   }
8094 
8095   enum class StencilFaceFlagBits : VkStencilFaceFlags
8096   {
8097     eFront = VK_STENCIL_FACE_FRONT_BIT,
8098     eBack = VK_STENCIL_FACE_BACK_BIT,
8099     eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK,
8100     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
8101   };
8102 
to_string(StencilFaceFlagBits value)8103   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
8104   {
8105     switch ( value )
8106     {
8107       case StencilFaceFlagBits::eFront : return "Front";
8108       case StencilFaceFlagBits::eBack : return "Back";
8109       case StencilFaceFlagBits::eFrontAndBack : return "FrontAndBack";
8110       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8111     }
8112   }
8113 
8114   enum class StencilOp
8115   {
8116     eKeep = VK_STENCIL_OP_KEEP,
8117     eZero = VK_STENCIL_OP_ZERO,
8118     eReplace = VK_STENCIL_OP_REPLACE,
8119     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
8120     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
8121     eInvert = VK_STENCIL_OP_INVERT,
8122     eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP,
8123     eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP
8124   };
8125 
to_string(StencilOp value)8126   VULKAN_HPP_INLINE std::string to_string( StencilOp value )
8127   {
8128     switch ( value )
8129     {
8130       case StencilOp::eKeep : return "Keep";
8131       case StencilOp::eZero : return "Zero";
8132       case StencilOp::eReplace : return "Replace";
8133       case StencilOp::eIncrementAndClamp : return "IncrementAndClamp";
8134       case StencilOp::eDecrementAndClamp : return "DecrementAndClamp";
8135       case StencilOp::eInvert : return "Invert";
8136       case StencilOp::eIncrementAndWrap : return "IncrementAndWrap";
8137       case StencilOp::eDecrementAndWrap : return "DecrementAndWrap";
8138       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8139     }
8140   }
8141 
8142   enum class StructureType
8143   {
8144     eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO,
8145     eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
8146     eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
8147     eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
8148     eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO,
8149     eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
8150     eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
8151     eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
8152     eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
8153     eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
8154     eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
8155     eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
8156     eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
8157     eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
8158     eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
8159     eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
8160     eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
8161     ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
8162     ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
8163     ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
8164     ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
8165     ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
8166     ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
8167     ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
8168     ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
8169     ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
8170     ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
8171     ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
8172     eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
8173     eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
8174     ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
8175     eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
8176     eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
8177     eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
8178     eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
8179     eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
8180     eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
8181     eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
8182     eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
8183     eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
8184     eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
8185     eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
8186     eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
8187     eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
8188     eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
8189     eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
8190     eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
8191     eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
8192     eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
8193     ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
8194     eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
8195     eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
8196     ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
8197     eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
8198     eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
8199     eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
8200     eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
8201     eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
8202     eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
8203     eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
8204     eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
8205     eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
8206     ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
8207     eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
8208     eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
8209     eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
8210     eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
8211     eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
8212     eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
8213     ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
8214     ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
8215     eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
8216     eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
8217     ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
8218     eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
8219     ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
8220     eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
8221     ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
8222     ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
8223     eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
8224     eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
8225     ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
8226     eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
8227     ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
8228     ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
8229     ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
8230     eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
8231     ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
8232     ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
8233     eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
8234     eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
8235     eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
8236     eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
8237     eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
8238     ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
8239     eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
8240     eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
8241     ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
8242     eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
8243     ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
8244     eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
8245     ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
8246     eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
8247     eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
8248     eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
8249     ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
8250     eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
8251     eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
8252     eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
8253     ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
8254     eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
8255     ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
8256     eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
8257     ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
8258     ePhysicalDeviceVulkan11Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
8259     ePhysicalDeviceVulkan11Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
8260     ePhysicalDeviceVulkan12Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
8261     ePhysicalDeviceVulkan12Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
8262     eImageFormatListCreateInfo = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
8263     eAttachmentDescription2 = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
8264     eAttachmentReference2 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
8265     eSubpassDescription2 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
8266     eSubpassDependency2 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
8267     eRenderPassCreateInfo2 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
8268     eSubpassBeginInfo = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
8269     eSubpassEndInfo = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
8270     ePhysicalDevice8BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
8271     ePhysicalDeviceDriverProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
8272     ePhysicalDeviceShaderAtomicInt64Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
8273     ePhysicalDeviceShaderFloat16Int8Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
8274     ePhysicalDeviceFloatControlsProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
8275     eDescriptorSetLayoutBindingFlagsCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
8276     ePhysicalDeviceDescriptorIndexingFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
8277     ePhysicalDeviceDescriptorIndexingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
8278     eDescriptorSetVariableDescriptorCountAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
8279     eDescriptorSetVariableDescriptorCountLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
8280     ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
8281     eSubpassDescriptionDepthStencilResolve = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
8282     ePhysicalDeviceScalarBlockLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
8283     eImageStencilUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
8284     ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
8285     eSamplerReductionModeCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
8286     ePhysicalDeviceVulkanMemoryModelFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
8287     ePhysicalDeviceImagelessFramebufferFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
8288     eFramebufferAttachmentsCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
8289     eFramebufferAttachmentImageInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
8290     eRenderPassAttachmentBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
8291     ePhysicalDeviceUniformBufferStandardLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
8292     ePhysicalDeviceShaderSubgroupExtendedTypesFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
8293     ePhysicalDeviceSeparateDepthStencilLayoutsFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
8294     eAttachmentReferenceStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
8295     eAttachmentDescriptionStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
8296     ePhysicalDeviceHostQueryResetFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
8297     ePhysicalDeviceTimelineSemaphoreFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
8298     ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
8299     eSemaphoreTypeCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
8300     eTimelineSemaphoreSubmitInfo = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
8301     eSemaphoreWaitInfo = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
8302     eSemaphoreSignalInfo = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
8303     ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
8304     eBufferDeviceAddressInfo = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
8305     eBufferOpaqueCaptureAddressCreateInfo = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
8306     eMemoryOpaqueCaptureAddressAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
8307     eDeviceMemoryOpaqueCaptureAddressInfo = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
8308     eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
8309     ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
8310     eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
8311     eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
8312     eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
8313     eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
8314     eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
8315     eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
8316     eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
8317     eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
8318     eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
8319     eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
8320     eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
8321     eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
8322     eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
8323     eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
8324     eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
8325     ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
8326     eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
8327     eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
8328     eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
8329     eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
8330     eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
8331     eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
8332     ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
8333     ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
8334     ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
8335     eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
8336     eImageViewAddressPropertiesNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
8337     eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
8338     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
8339     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
8340     eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
8341     eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
8342     eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
8343     eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
8344     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
8345     eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
8346     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
8347     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
8348     eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
8349     ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
8350     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
8351     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
8352     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
8353     eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
8354     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
8355     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
8356     eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
8357     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
8358     eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
8359     eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
8360     eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
8361     eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
8362     eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
8363     eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
8364     ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
8365     eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
8366     ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
8367     eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
8368     ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
8369     ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
8370     eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
8371     eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
8372     eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
8373     eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
8374     eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
8375     ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
8376     ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
8377     ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
8378     ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
8379     ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
8380     ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
8381     ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
8382     ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
8383     ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
8384     eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
8385     eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
8386     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
8387     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
8388     eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
8389     eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
8390     eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
8391     ePhysicalDevicePerformanceQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
8392     ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
8393     eQueryPoolPerformanceCreateInfoKHR = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
8394     ePerformanceQuerySubmitInfoKHR = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
8395     eAcquireProfilingLockInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
8396     ePerformanceCounterKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
8397     ePerformanceCounterDescriptionKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
8398     ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
8399     eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
8400     eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
8401     eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
8402     eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
8403     eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
8404     eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
8405     eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
8406     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
8407     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
8408     eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
8409     eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
8410     eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
8411     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
8412     eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
8413     eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
8414     eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
8415     eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
8416     eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
8417     eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
8418     eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
8419     ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
8420     ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
8421     eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
8422     eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
8423     eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
8424     eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
8425     ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
8426     ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
8427     eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
8428     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
8429     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
8430     ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
8431     ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
8432     eBindAccelerationStructureMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
8433     eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
8434     eAccelerationStructureBuildGeometryInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
8435     eAccelerationStructureCreateGeometryTypeInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR,
8436     eAccelerationStructureDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
8437     eAccelerationStructureGeometryAabbsDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
8438     eAccelerationStructureGeometryInstancesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
8439     eAccelerationStructureGeometryTrianglesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
8440     eAccelerationStructureGeometryKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
8441     eAccelerationStructureMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR,
8442     eAccelerationStructureVersionKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR,
8443     eCopyAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
8444     eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
8445     eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
8446     ePhysicalDeviceRayTracingFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR,
8447     ePhysicalDeviceRayTracingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR,
8448     eRayTracingPipelineCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
8449     eRayTracingShaderGroupCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
8450     eAccelerationStructureCreateInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
8451     eRayTracingPipelineInterfaceCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
8452     ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
8453     ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
8454     ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
8455     eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
8456     ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
8457     eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
8458     eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
8459     eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
8460     eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
8461     eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
8462     ePhysicalDevicePortabilitySubsetFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
8463     ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
8464     ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
8465     ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
8466     ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
8467     ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
8468     eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
8469     eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
8470     eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV,
8471     eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
8472     eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
8473     eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
8474     ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
8475     eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
8476     eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
8477     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
8478     ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
8479     ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
8480     eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
8481     eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
8482     eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
8483     eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
8484     ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
8485     ePhysicalDeviceShaderClockFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
8486     ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
8487     eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
8488     ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
8489     eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
8490     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
8491     ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
8492     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
8493     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
8494     ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
8495     ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
8496     ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
8497     ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
8498     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
8499     ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
8500     ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
8501     ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
8502     eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
8503     eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
8504     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
8505     eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
8506     eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
8507     ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
8508     ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
8509     ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
8510     ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
8511     ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
8512     eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
8513     eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
8514     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
8515     ePhysicalDeviceShaderTerminateInvocationFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
8516     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
8517     ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
8518     ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
8519     eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
8520     ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
8521     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
8522     ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
8523     eFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
8524     ePipelineFragmentShadingRateStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
8525     ePhysicalDeviceFragmentShadingRatePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
8526     ePhysicalDeviceFragmentShadingRateFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
8527     ePhysicalDeviceFragmentShadingRateKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
8528     ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
8529     ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
8530     ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
8531     ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
8532     ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
8533     eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
8534     eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
8535     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
8536     ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
8537     eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
8538     ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
8539     eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
8540     ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
8541     eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
8542     ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
8543     ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
8544     ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
8545     eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
8546     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
8547     ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
8548     eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
8549     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
8550     eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
8551     eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
8552     ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
8553     ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
8554     ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
8555     ePhysicalDeviceShaderAtomicFloatFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
8556     ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
8557     ePhysicalDeviceExtendedDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
8558     eDeferredOperationInfoKHR = VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,
8559     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
8560     ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
8561     ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
8562     ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
8563     ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
8564     ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
8565     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
8566     ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
8567     eGraphicsShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
8568     eGraphicsPipelineShaderGroupsCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
8569     eIndirectCommandsLayoutTokenNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
8570     eIndirectCommandsLayoutCreateInfoNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
8571     eGeneratedCommandsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
8572     eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
8573     ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
8574     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
8575     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
8576     eCommandBufferInheritanceRenderPassTransformInfoQCOM = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
8577     eRenderPassTransformBeginInfoQCOM = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
8578     ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
8579     eDeviceDeviceMemoryReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
8580     eDeviceMemoryReportCallbackDataEXT = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
8581     ePhysicalDeviceRobustness2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
8582     ePhysicalDeviceRobustness2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
8583     eSamplerCustomBorderColorCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
8584     ePhysicalDeviceCustomBorderColorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
8585     ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
8586     ePipelineLibraryCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
8587     ePhysicalDevicePrivateDataFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
8588     eDevicePrivateDataCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
8589     ePrivateDataSlotCreateInfoEXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
8590     ePhysicalDevicePipelineCreationCacheControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
8591     ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
8592     eDeviceDiagnosticsConfigCreateInfoNV = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
8593     ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
8594     ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
8595     ePipelineFragmentShadingRateEnumStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
8596     ePhysicalDeviceFragmentDensityMap2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
8597     ePhysicalDeviceFragmentDensityMap2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
8598     eCopyCommandTransformInfoQCOM = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,
8599     ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
8600     eCopyBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
8601     eCopyImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
8602     eCopyBufferToImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
8603     eCopyImageToBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
8604     eBlitImageInfo2KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
8605     eResolveImageInfo2KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
8606     eBufferCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
8607     eImageCopy2KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
8608     eImageBlit2KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
8609     eBufferImageCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
8610     eImageResolve2KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
8611     ePhysicalDevice4444FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
8612     eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
8613     eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
8614     eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
8615     eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
8616     eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
8617     eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
8618     eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
8619     eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
8620     eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
8621     eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
8622     eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
8623     eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
8624     eBufferDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
8625     eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
8626     eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
8627     eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
8628     eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
8629     eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
8630     eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
8631     eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
8632     eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
8633     eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
8634     eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
8635     eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
8636     eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
8637     eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
8638     eDeviceMemoryOpaqueCaptureAddressInfoKHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
8639     eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
8640     eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
8641     eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
8642     eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
8643     eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
8644     eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
8645     eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
8646     eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
8647     eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
8648     eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
8649     eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
8650     eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
8651     eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
8652     eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
8653     eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
8654     eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
8655     eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
8656     eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
8657     eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
8658     eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
8659     eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
8660     eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
8661     eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
8662     eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
8663     ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
8664     ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
8665     ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
8666     ePhysicalDeviceBufferDeviceAddressFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
8667     ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
8668     ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
8669     ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
8670     ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
8671     ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
8672     ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
8673     ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
8674     ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
8675     ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
8676     ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
8677     ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
8678     ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
8679     ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
8680     ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
8681     ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
8682     ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
8683     ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
8684     ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
8685     ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
8686     ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
8687     ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
8688     ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
8689     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
8690     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
8691     ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
8692     ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
8693     ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
8694     ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
8695     ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
8696     ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
8697     ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
8698     ePhysicalDeviceTimelineSemaphoreFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
8699     ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
8700     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
8701     ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
8702     ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
8703     ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
8704     ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
8705     ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
8706     eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
8707     eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
8708     eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
8709     eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
8710     eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
8711     eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
8712     eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
8713     eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
8714     eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
8715     eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
8716     eSemaphoreSignalInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
8717     eSemaphoreTypeCreateInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
8718     eSemaphoreWaitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
8719     eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
8720     eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
8721     eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
8722     eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
8723     eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
8724     eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
8725     eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
8726     eTimelineSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR,
8727     eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
8728   };
8729 
to_string(StructureType value)8730   VULKAN_HPP_INLINE std::string to_string( StructureType value )
8731   {
8732     switch ( value )
8733     {
8734       case StructureType::eApplicationInfo : return "ApplicationInfo";
8735       case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo";
8736       case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo";
8737       case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo";
8738       case StructureType::eSubmitInfo : return "SubmitInfo";
8739       case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo";
8740       case StructureType::eMappedMemoryRange : return "MappedMemoryRange";
8741       case StructureType::eBindSparseInfo : return "BindSparseInfo";
8742       case StructureType::eFenceCreateInfo : return "FenceCreateInfo";
8743       case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo";
8744       case StructureType::eEventCreateInfo : return "EventCreateInfo";
8745       case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo";
8746       case StructureType::eBufferCreateInfo : return "BufferCreateInfo";
8747       case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo";
8748       case StructureType::eImageCreateInfo : return "ImageCreateInfo";
8749       case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo";
8750       case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo";
8751       case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo";
8752       case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo";
8753       case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo";
8754       case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo";
8755       case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo";
8756       case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo";
8757       case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo";
8758       case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo";
8759       case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo";
8760       case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo";
8761       case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo";
8762       case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo";
8763       case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo";
8764       case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo";
8765       case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo";
8766       case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo";
8767       case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo";
8768       case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo";
8769       case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet";
8770       case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet";
8771       case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo";
8772       case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo";
8773       case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo";
8774       case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo";
8775       case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo";
8776       case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo";
8777       case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo";
8778       case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier";
8779       case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier";
8780       case StructureType::eMemoryBarrier : return "MemoryBarrier";
8781       case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo";
8782       case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo";
8783       case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties";
8784       case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo";
8785       case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo";
8786       case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures";
8787       case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements";
8788       case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo";
8789       case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo";
8790       case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo";
8791       case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo";
8792       case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo";
8793       case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo";
8794       case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo";
8795       case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo";
8796       case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties";
8797       case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo";
8798       case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2";
8799       case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2";
8800       case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2";
8801       case StructureType::eMemoryRequirements2 : return "MemoryRequirements2";
8802       case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2";
8803       case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2";
8804       case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2";
8805       case StructureType::eFormatProperties2 : return "FormatProperties2";
8806       case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2";
8807       case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2";
8808       case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2";
8809       case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2";
8810       case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2";
8811       case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2";
8812       case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties";
8813       case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo";
8814       case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo";
8815       case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo";
8816       case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo";
8817       case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures";
8818       case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties";
8819       case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures";
8820       case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo";
8821       case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures";
8822       case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties";
8823       case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2";
8824       case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo";
8825       case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo";
8826       case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo";
8827       case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo";
8828       case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures";
8829       case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties";
8830       case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo";
8831       case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo";
8832       case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties";
8833       case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo";
8834       case StructureType::eExternalBufferProperties : return "ExternalBufferProperties";
8835       case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties";
8836       case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo";
8837       case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo";
8838       case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo";
8839       case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo";
8840       case StructureType::eExternalFenceProperties : return "ExternalFenceProperties";
8841       case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo";
8842       case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo";
8843       case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo";
8844       case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties";
8845       case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties";
8846       case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport";
8847       case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures";
8848       case StructureType::ePhysicalDeviceVulkan11Features : return "PhysicalDeviceVulkan11Features";
8849       case StructureType::ePhysicalDeviceVulkan11Properties : return "PhysicalDeviceVulkan11Properties";
8850       case StructureType::ePhysicalDeviceVulkan12Features : return "PhysicalDeviceVulkan12Features";
8851       case StructureType::ePhysicalDeviceVulkan12Properties : return "PhysicalDeviceVulkan12Properties";
8852       case StructureType::eImageFormatListCreateInfo : return "ImageFormatListCreateInfo";
8853       case StructureType::eAttachmentDescription2 : return "AttachmentDescription2";
8854       case StructureType::eAttachmentReference2 : return "AttachmentReference2";
8855       case StructureType::eSubpassDescription2 : return "SubpassDescription2";
8856       case StructureType::eSubpassDependency2 : return "SubpassDependency2";
8857       case StructureType::eRenderPassCreateInfo2 : return "RenderPassCreateInfo2";
8858       case StructureType::eSubpassBeginInfo : return "SubpassBeginInfo";
8859       case StructureType::eSubpassEndInfo : return "SubpassEndInfo";
8860       case StructureType::ePhysicalDevice8BitStorageFeatures : return "PhysicalDevice8BitStorageFeatures";
8861       case StructureType::ePhysicalDeviceDriverProperties : return "PhysicalDeviceDriverProperties";
8862       case StructureType::ePhysicalDeviceShaderAtomicInt64Features : return "PhysicalDeviceShaderAtomicInt64Features";
8863       case StructureType::ePhysicalDeviceShaderFloat16Int8Features : return "PhysicalDeviceShaderFloat16Int8Features";
8864       case StructureType::ePhysicalDeviceFloatControlsProperties : return "PhysicalDeviceFloatControlsProperties";
8865       case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo : return "DescriptorSetLayoutBindingFlagsCreateInfo";
8866       case StructureType::ePhysicalDeviceDescriptorIndexingFeatures : return "PhysicalDeviceDescriptorIndexingFeatures";
8867       case StructureType::ePhysicalDeviceDescriptorIndexingProperties : return "PhysicalDeviceDescriptorIndexingProperties";
8868       case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo : return "DescriptorSetVariableDescriptorCountAllocateInfo";
8869       case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport : return "DescriptorSetVariableDescriptorCountLayoutSupport";
8870       case StructureType::ePhysicalDeviceDepthStencilResolveProperties : return "PhysicalDeviceDepthStencilResolveProperties";
8871       case StructureType::eSubpassDescriptionDepthStencilResolve : return "SubpassDescriptionDepthStencilResolve";
8872       case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures : return "PhysicalDeviceScalarBlockLayoutFeatures";
8873       case StructureType::eImageStencilUsageCreateInfo : return "ImageStencilUsageCreateInfo";
8874       case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties : return "PhysicalDeviceSamplerFilterMinmaxProperties";
8875       case StructureType::eSamplerReductionModeCreateInfo : return "SamplerReductionModeCreateInfo";
8876       case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures : return "PhysicalDeviceVulkanMemoryModelFeatures";
8877       case StructureType::ePhysicalDeviceImagelessFramebufferFeatures : return "PhysicalDeviceImagelessFramebufferFeatures";
8878       case StructureType::eFramebufferAttachmentsCreateInfo : return "FramebufferAttachmentsCreateInfo";
8879       case StructureType::eFramebufferAttachmentImageInfo : return "FramebufferAttachmentImageInfo";
8880       case StructureType::eRenderPassAttachmentBeginInfo : return "RenderPassAttachmentBeginInfo";
8881       case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures : return "PhysicalDeviceUniformBufferStandardLayoutFeatures";
8882       case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures : return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures";
8883       case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures : return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures";
8884       case StructureType::eAttachmentReferenceStencilLayout : return "AttachmentReferenceStencilLayout";
8885       case StructureType::eAttachmentDescriptionStencilLayout : return "AttachmentDescriptionStencilLayout";
8886       case StructureType::ePhysicalDeviceHostQueryResetFeatures : return "PhysicalDeviceHostQueryResetFeatures";
8887       case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures : return "PhysicalDeviceTimelineSemaphoreFeatures";
8888       case StructureType::ePhysicalDeviceTimelineSemaphoreProperties : return "PhysicalDeviceTimelineSemaphoreProperties";
8889       case StructureType::eSemaphoreTypeCreateInfo : return "SemaphoreTypeCreateInfo";
8890       case StructureType::eTimelineSemaphoreSubmitInfo : return "TimelineSemaphoreSubmitInfo";
8891       case StructureType::eSemaphoreWaitInfo : return "SemaphoreWaitInfo";
8892       case StructureType::eSemaphoreSignalInfo : return "SemaphoreSignalInfo";
8893       case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures : return "PhysicalDeviceBufferDeviceAddressFeatures";
8894       case StructureType::eBufferDeviceAddressInfo : return "BufferDeviceAddressInfo";
8895       case StructureType::eBufferOpaqueCaptureAddressCreateInfo : return "BufferOpaqueCaptureAddressCreateInfo";
8896       case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo : return "MemoryOpaqueCaptureAddressAllocateInfo";
8897       case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo : return "DeviceMemoryOpaqueCaptureAddressInfo";
8898       case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR";
8899       case StructureType::ePresentInfoKHR : return "PresentInfoKHR";
8900       case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR";
8901       case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR";
8902       case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR";
8903       case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR";
8904       case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR";
8905       case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR";
8906       case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR";
8907       case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR";
8908       case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR";
8909       case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR";
8910       case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR";
8911       case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR";
8912       case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR";
8913       case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR";
8914       case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT";
8915       case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD";
8916       case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT";
8917       case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT";
8918       case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT";
8919       case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV";
8920       case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV";
8921       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV";
8922       case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT";
8923       case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT";
8924       case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT";
8925       case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX";
8926       case StructureType::eImageViewAddressPropertiesNVX : return "ImageViewAddressPropertiesNVX";
8927       case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD";
8928       case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP";
8929       case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV";
8930       case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV";
8931       case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV";
8932       case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV";
8933       case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV";
8934       case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV";
8935       case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT";
8936       case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN";
8937       case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT : return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT";
8938       case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT";
8939       case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT";
8940       case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR";
8941       case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR";
8942       case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR";
8943       case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR";
8944       case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR";
8945       case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR";
8946       case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR";
8947       case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR";
8948       case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR";
8949       case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR";
8950       case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR";
8951       case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR";
8952       case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR";
8953       case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR";
8954       case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR";
8955       case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT";
8956       case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT";
8957       case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT";
8958       case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR";
8959       case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV";
8960       case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT";
8961       case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT";
8962       case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT";
8963       case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT";
8964       case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT";
8965       case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE";
8966       case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
8967       case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV";
8968       case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT";
8969       case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT";
8970       case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
8971       case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT";
8972       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT";
8973       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT";
8974       case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT";
8975       case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR";
8976       case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR";
8977       case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR";
8978       case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR";
8979       case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR";
8980       case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR";
8981       case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR : return "PhysicalDevicePerformanceQueryFeaturesKHR";
8982       case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR : return "PhysicalDevicePerformanceQueryPropertiesKHR";
8983       case StructureType::eQueryPoolPerformanceCreateInfoKHR : return "QueryPoolPerformanceCreateInfoKHR";
8984       case StructureType::ePerformanceQuerySubmitInfoKHR : return "PerformanceQuerySubmitInfoKHR";
8985       case StructureType::eAcquireProfilingLockInfoKHR : return "AcquireProfilingLockInfoKHR";
8986       case StructureType::ePerformanceCounterKHR : return "PerformanceCounterKHR";
8987       case StructureType::ePerformanceCounterDescriptionKHR : return "PerformanceCounterDescriptionKHR";
8988       case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR";
8989       case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR";
8990       case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR";
8991       case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR";
8992       case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR";
8993       case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR";
8994       case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR";
8995       case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR";
8996       case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK";
8997       case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK";
8998       case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT";
8999       case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT";
9000       case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT";
9001       case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT";
9002       case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT";
9003       case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID";
9004       case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID";
9005       case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID";
9006       case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID";
9007       case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID";
9008       case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID";
9009       case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
9010       case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
9011       case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT";
9012       case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
9013       case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT";
9014       case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT";
9015       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT";
9016       case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT";
9017       case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT";
9018       case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
9019       case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
9020       case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT";
9021       case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV";
9022       case StructureType::eBindAccelerationStructureMemoryInfoKHR : return "BindAccelerationStructureMemoryInfoKHR";
9023       case StructureType::eWriteDescriptorSetAccelerationStructureKHR : return "WriteDescriptorSetAccelerationStructureKHR";
9024       case StructureType::eAccelerationStructureBuildGeometryInfoKHR : return "AccelerationStructureBuildGeometryInfoKHR";
9025       case StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR : return "AccelerationStructureCreateGeometryTypeInfoKHR";
9026       case StructureType::eAccelerationStructureDeviceAddressInfoKHR : return "AccelerationStructureDeviceAddressInfoKHR";
9027       case StructureType::eAccelerationStructureGeometryAabbsDataKHR : return "AccelerationStructureGeometryAabbsDataKHR";
9028       case StructureType::eAccelerationStructureGeometryInstancesDataKHR : return "AccelerationStructureGeometryInstancesDataKHR";
9029       case StructureType::eAccelerationStructureGeometryTrianglesDataKHR : return "AccelerationStructureGeometryTrianglesDataKHR";
9030       case StructureType::eAccelerationStructureGeometryKHR : return "AccelerationStructureGeometryKHR";
9031       case StructureType::eAccelerationStructureMemoryRequirementsInfoKHR : return "AccelerationStructureMemoryRequirementsInfoKHR";
9032       case StructureType::eAccelerationStructureVersionKHR : return "AccelerationStructureVersionKHR";
9033       case StructureType::eCopyAccelerationStructureInfoKHR : return "CopyAccelerationStructureInfoKHR";
9034       case StructureType::eCopyAccelerationStructureToMemoryInfoKHR : return "CopyAccelerationStructureToMemoryInfoKHR";
9035       case StructureType::eCopyMemoryToAccelerationStructureInfoKHR : return "CopyMemoryToAccelerationStructureInfoKHR";
9036       case StructureType::ePhysicalDeviceRayTracingFeaturesKHR : return "PhysicalDeviceRayTracingFeaturesKHR";
9037       case StructureType::ePhysicalDeviceRayTracingPropertiesKHR : return "PhysicalDeviceRayTracingPropertiesKHR";
9038       case StructureType::eRayTracingPipelineCreateInfoKHR : return "RayTracingPipelineCreateInfoKHR";
9039       case StructureType::eRayTracingShaderGroupCreateInfoKHR : return "RayTracingShaderGroupCreateInfoKHR";
9040       case StructureType::eAccelerationStructureCreateInfoKHR : return "AccelerationStructureCreateInfoKHR";
9041       case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR : return "RayTracingPipelineInterfaceCreateInfoKHR";
9042       case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV";
9043       case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
9044       case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
9045       case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT";
9046       case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
9047       case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT";
9048       case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT";
9049       case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT";
9050       case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT";
9051       case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT";
9052       case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR : return "PhysicalDevicePortabilitySubsetFeaturesKHR";
9053       case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR : return "PhysicalDevicePortabilitySubsetPropertiesKHR";
9054       case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV";
9055       case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV";
9056       case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV";
9057       case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
9058       case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV";
9059       case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV";
9060       case StructureType::eGeometryNV : return "GeometryNV";
9061       case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV";
9062       case StructureType::eGeometryAabbNV : return "GeometryAabbNV";
9063       case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV";
9064       case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV";
9065       case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV";
9066       case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV";
9067       case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
9068       case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
9069       case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT";
9070       case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT";
9071       case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT";
9072       case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT";
9073       case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT";
9074       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
9075       case StructureType::ePhysicalDeviceShaderClockFeaturesKHR : return "PhysicalDeviceShaderClockFeaturesKHR";
9076       case StructureType::ePipelineCompilerControlCreateInfoAMD : return "PipelineCompilerControlCreateInfoAMD";
9077       case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT";
9078       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD";
9079       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD";
9080       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
9081       case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT";
9082       case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
9083       case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP";
9084       case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT";
9085       case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
9086       case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV";
9087       case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV";
9088       case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
9089       case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV";
9090       case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV";
9091       case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV";
9092       case StructureType::eCheckpointDataNV : return "CheckpointDataNV";
9093       case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV";
9094       case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
9095       case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL : return "QueryPoolPerformanceQueryCreateInfoINTEL";
9096       case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL";
9097       case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL";
9098       case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL";
9099       case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL";
9100       case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL";
9101       case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT";
9102       case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD";
9103       case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD";
9104       case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA";
9105       case StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR : return "PhysicalDeviceShaderTerminateInvocationFeaturesKHR";
9106       case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT";
9107       case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
9108       case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
9109       case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT";
9110       case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT : return "PhysicalDeviceSubgroupSizeControlPropertiesEXT";
9111       case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT";
9112       case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT : return "PhysicalDeviceSubgroupSizeControlFeaturesEXT";
9113       case StructureType::eFragmentShadingRateAttachmentInfoKHR : return "FragmentShadingRateAttachmentInfoKHR";
9114       case StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR : return "PipelineFragmentShadingRateStateCreateInfoKHR";
9115       case StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR : return "PhysicalDeviceFragmentShadingRatePropertiesKHR";
9116       case StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR : return "PhysicalDeviceFragmentShadingRateFeaturesKHR";
9117       case StructureType::ePhysicalDeviceFragmentShadingRateKHR : return "PhysicalDeviceFragmentShadingRateKHR";
9118       case StructureType::ePhysicalDeviceShaderCoreProperties2AMD : return "PhysicalDeviceShaderCoreProperties2AMD";
9119       case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD : return "PhysicalDeviceCoherentMemoryFeaturesAMD";
9120       case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT : return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT";
9121       case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT";
9122       case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT";
9123       case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT";
9124       case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR";
9125       case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
9126       case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
9127       case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT";
9128       case StructureType::ePhysicalDeviceToolPropertiesEXT : return "PhysicalDeviceToolPropertiesEXT";
9129       case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT";
9130       case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV";
9131       case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV";
9132       case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV";
9133       case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV";
9134       case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV";
9135       case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV";
9136       case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
9137       case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
9138       case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT";
9139       case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT";
9140       case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT";
9141       case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT";
9142       case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT : return "PhysicalDeviceLineRasterizationFeaturesEXT";
9143       case StructureType::ePipelineRasterizationLineStateCreateInfoEXT : return "PipelineRasterizationLineStateCreateInfoEXT";
9144       case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT : return "PhysicalDeviceLineRasterizationPropertiesEXT";
9145       case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT : return "PhysicalDeviceShaderAtomicFloatFeaturesEXT";
9146       case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT : return "PhysicalDeviceIndexTypeUint8FeaturesEXT";
9147       case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT : return "PhysicalDeviceExtendedDynamicStateFeaturesEXT";
9148       case StructureType::eDeferredOperationInfoKHR : return "DeferredOperationInfoKHR";
9149       case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR : return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
9150       case StructureType::ePipelineInfoKHR : return "PipelineInfoKHR";
9151       case StructureType::ePipelineExecutablePropertiesKHR : return "PipelineExecutablePropertiesKHR";
9152       case StructureType::ePipelineExecutableInfoKHR : return "PipelineExecutableInfoKHR";
9153       case StructureType::ePipelineExecutableStatisticKHR : return "PipelineExecutableStatisticKHR";
9154       case StructureType::ePipelineExecutableInternalRepresentationKHR : return "PipelineExecutableInternalRepresentationKHR";
9155       case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
9156       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV : return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV";
9157       case StructureType::eGraphicsShaderGroupCreateInfoNV : return "GraphicsShaderGroupCreateInfoNV";
9158       case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV : return "GraphicsPipelineShaderGroupsCreateInfoNV";
9159       case StructureType::eIndirectCommandsLayoutTokenNV : return "IndirectCommandsLayoutTokenNV";
9160       case StructureType::eIndirectCommandsLayoutCreateInfoNV : return "IndirectCommandsLayoutCreateInfoNV";
9161       case StructureType::eGeneratedCommandsInfoNV : return "GeneratedCommandsInfoNV";
9162       case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV : return "GeneratedCommandsMemoryRequirementsInfoNV";
9163       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV : return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV";
9164       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
9165       case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
9166       case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM : return "CommandBufferInheritanceRenderPassTransformInfoQCOM";
9167       case StructureType::eRenderPassTransformBeginInfoQCOM : return "RenderPassTransformBeginInfoQCOM";
9168       case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT : return "PhysicalDeviceDeviceMemoryReportFeaturesEXT";
9169       case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT : return "DeviceDeviceMemoryReportCreateInfoEXT";
9170       case StructureType::eDeviceMemoryReportCallbackDataEXT : return "DeviceMemoryReportCallbackDataEXT";
9171       case StructureType::ePhysicalDeviceRobustness2FeaturesEXT : return "PhysicalDeviceRobustness2FeaturesEXT";
9172       case StructureType::ePhysicalDeviceRobustness2PropertiesEXT : return "PhysicalDeviceRobustness2PropertiesEXT";
9173       case StructureType::eSamplerCustomBorderColorCreateInfoEXT : return "SamplerCustomBorderColorCreateInfoEXT";
9174       case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT : return "PhysicalDeviceCustomBorderColorPropertiesEXT";
9175       case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT : return "PhysicalDeviceCustomBorderColorFeaturesEXT";
9176       case StructureType::ePipelineLibraryCreateInfoKHR : return "PipelineLibraryCreateInfoKHR";
9177       case StructureType::ePhysicalDevicePrivateDataFeaturesEXT : return "PhysicalDevicePrivateDataFeaturesEXT";
9178       case StructureType::eDevicePrivateDataCreateInfoEXT : return "DevicePrivateDataCreateInfoEXT";
9179       case StructureType::ePrivateDataSlotCreateInfoEXT : return "PrivateDataSlotCreateInfoEXT";
9180       case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT : return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT";
9181       case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV : return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
9182       case StructureType::eDeviceDiagnosticsConfigCreateInfoNV : return "DeviceDiagnosticsConfigCreateInfoNV";
9183       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV : return "PhysicalDeviceFragmentShadingRateEnumsPropertiesNV";
9184       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV : return "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV";
9185       case StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV : return "PipelineFragmentShadingRateEnumStateCreateInfoNV";
9186       case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT : return "PhysicalDeviceFragmentDensityMap2FeaturesEXT";
9187       case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT : return "PhysicalDeviceFragmentDensityMap2PropertiesEXT";
9188       case StructureType::eCopyCommandTransformInfoQCOM : return "CopyCommandTransformInfoQCOM";
9189       case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT : return "PhysicalDeviceImageRobustnessFeaturesEXT";
9190       case StructureType::eCopyBufferInfo2KHR : return "CopyBufferInfo2KHR";
9191       case StructureType::eCopyImageInfo2KHR : return "CopyImageInfo2KHR";
9192       case StructureType::eCopyBufferToImageInfo2KHR : return "CopyBufferToImageInfo2KHR";
9193       case StructureType::eCopyImageToBufferInfo2KHR : return "CopyImageToBufferInfo2KHR";
9194       case StructureType::eBlitImageInfo2KHR : return "BlitImageInfo2KHR";
9195       case StructureType::eResolveImageInfo2KHR : return "ResolveImageInfo2KHR";
9196       case StructureType::eBufferCopy2KHR : return "BufferCopy2KHR";
9197       case StructureType::eImageCopy2KHR : return "ImageCopy2KHR";
9198       case StructureType::eImageBlit2KHR : return "ImageBlit2KHR";
9199       case StructureType::eBufferImageCopy2KHR : return "BufferImageCopy2KHR";
9200       case StructureType::eImageResolve2KHR : return "ImageResolve2KHR";
9201       case StructureType::ePhysicalDevice4444FormatsFeaturesEXT : return "PhysicalDevice4444FormatsFeaturesEXT";
9202       case StructureType::eDirectfbSurfaceCreateInfoEXT : return "DirectfbSurfaceCreateInfoEXT";
9203       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9204     }
9205   }
9206 
9207   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
9208   {
9209     eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT,
9210     eVote = VK_SUBGROUP_FEATURE_VOTE_BIT,
9211     eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
9212     eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT,
9213     eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
9214     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
9215     eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
9216     eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT,
9217     ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
9218   };
9219 
to_string(SubgroupFeatureFlagBits value)9220   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
9221   {
9222     switch ( value )
9223     {
9224       case SubgroupFeatureFlagBits::eBasic : return "Basic";
9225       case SubgroupFeatureFlagBits::eVote : return "Vote";
9226       case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic";
9227       case SubgroupFeatureFlagBits::eBallot : return "Ballot";
9228       case SubgroupFeatureFlagBits::eShuffle : return "Shuffle";
9229       case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative";
9230       case SubgroupFeatureFlagBits::eClustered : return "Clustered";
9231       case SubgroupFeatureFlagBits::eQuad : return "Quad";
9232       case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV";
9233       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9234     }
9235   }
9236 
9237   enum class SubpassContents
9238   {
9239     eInline = VK_SUBPASS_CONTENTS_INLINE,
9240     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
9241   };
9242 
to_string(SubpassContents value)9243   VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
9244   {
9245     switch ( value )
9246     {
9247       case SubpassContents::eInline : return "Inline";
9248       case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers";
9249       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9250     }
9251   }
9252 
9253   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
9254   {
9255     ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
9256     ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
9257     eFragmentRegionQCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
9258     eShaderResolveQCOM = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
9259   };
9260 
to_string(SubpassDescriptionFlagBits value)9261   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
9262   {
9263     switch ( value )
9264     {
9265       case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX";
9266       case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX";
9267       case SubpassDescriptionFlagBits::eFragmentRegionQCOM : return "FragmentRegionQCOM";
9268       case SubpassDescriptionFlagBits::eShaderResolveQCOM : return "ShaderResolveQCOM";
9269       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9270     }
9271   }
9272 
9273   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
9274   {
9275     eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT
9276   };
9277 
to_string(SurfaceCounterFlagBitsEXT value)9278   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
9279   {
9280     switch ( value )
9281     {
9282       case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank";
9283       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9284     }
9285   }
9286 
9287   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
9288   {
9289     eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
9290     eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
9291     eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
9292     eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
9293     eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
9294     eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
9295     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
9296     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
9297     eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
9298   };
9299 
to_string(SurfaceTransformFlagBitsKHR value)9300   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
9301   {
9302     switch ( value )
9303     {
9304       case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity";
9305       case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90";
9306       case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180";
9307       case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270";
9308       case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror";
9309       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90";
9310       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180";
9311       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270";
9312       case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit";
9313       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9314     }
9315   }
9316 
9317   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
9318   {
9319     eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
9320     eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
9321     eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
9322   };
9323 
to_string(SwapchainCreateFlagBitsKHR value)9324   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
9325   {
9326     switch ( value )
9327     {
9328       case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
9329       case SwapchainCreateFlagBitsKHR::eProtected : return "Protected";
9330       case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat";
9331       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9332     }
9333   }
9334 
9335   enum class SystemAllocationScope
9336   {
9337     eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
9338     eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
9339     eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
9340     eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
9341     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
9342   };
9343 
to_string(SystemAllocationScope value)9344   VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
9345   {
9346     switch ( value )
9347     {
9348       case SystemAllocationScope::eCommand : return "Command";
9349       case SystemAllocationScope::eObject : return "Object";
9350       case SystemAllocationScope::eCache : return "Cache";
9351       case SystemAllocationScope::eDevice : return "Device";
9352       case SystemAllocationScope::eInstance : return "Instance";
9353       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9354     }
9355   }
9356 
9357   enum class TessellationDomainOrigin
9358   {
9359     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
9360     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
9361   };
9362   using TessellationDomainOriginKHR = TessellationDomainOrigin;
9363 
to_string(TessellationDomainOrigin value)9364   VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
9365   {
9366     switch ( value )
9367     {
9368       case TessellationDomainOrigin::eUpperLeft : return "UpperLeft";
9369       case TessellationDomainOrigin::eLowerLeft : return "LowerLeft";
9370       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9371     }
9372   }
9373 
9374   enum class TimeDomainEXT
9375   {
9376     eDevice = VK_TIME_DOMAIN_DEVICE_EXT,
9377     eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
9378     eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
9379     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
9380   };
9381 
to_string(TimeDomainEXT value)9382   VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
9383   {
9384     switch ( value )
9385     {
9386       case TimeDomainEXT::eDevice : return "Device";
9387       case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic";
9388       case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw";
9389       case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter";
9390       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9391     }
9392   }
9393 
9394   enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT
9395   {
9396     eValidation = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,
9397     eProfiling = VK_TOOL_PURPOSE_PROFILING_BIT_EXT,
9398     eTracing = VK_TOOL_PURPOSE_TRACING_BIT_EXT,
9399     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,
9400     eModifyingFeatures = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,
9401     eDebugReporting = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
9402     eDebugMarkers = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
9403   };
9404 
to_string(ToolPurposeFlagBitsEXT value)9405   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value )
9406   {
9407     switch ( value )
9408     {
9409       case ToolPurposeFlagBitsEXT::eValidation : return "Validation";
9410       case ToolPurposeFlagBitsEXT::eProfiling : return "Profiling";
9411       case ToolPurposeFlagBitsEXT::eTracing : return "Tracing";
9412       case ToolPurposeFlagBitsEXT::eAdditionalFeatures : return "AdditionalFeatures";
9413       case ToolPurposeFlagBitsEXT::eModifyingFeatures : return "ModifyingFeatures";
9414       case ToolPurposeFlagBitsEXT::eDebugReporting : return "DebugReporting";
9415       case ToolPurposeFlagBitsEXT::eDebugMarkers : return "DebugMarkers";
9416       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9417     }
9418   }
9419 
9420   enum class ValidationCacheHeaderVersionEXT
9421   {
9422     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
9423   };
9424 
to_string(ValidationCacheHeaderVersionEXT value)9425   VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
9426   {
9427     switch ( value )
9428     {
9429       case ValidationCacheHeaderVersionEXT::eOne : return "One";
9430       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9431     }
9432   }
9433 
9434   enum class ValidationCheckEXT
9435   {
9436     eAll = VK_VALIDATION_CHECK_ALL_EXT,
9437     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
9438   };
9439 
to_string(ValidationCheckEXT value)9440   VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
9441   {
9442     switch ( value )
9443     {
9444       case ValidationCheckEXT::eAll : return "All";
9445       case ValidationCheckEXT::eShaders : return "Shaders";
9446       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9447     }
9448   }
9449 
9450   enum class ValidationFeatureDisableEXT
9451   {
9452     eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
9453     eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
9454     eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
9455     eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
9456     eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
9457     eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
9458     eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
9459   };
9460 
to_string(ValidationFeatureDisableEXT value)9461   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
9462   {
9463     switch ( value )
9464     {
9465       case ValidationFeatureDisableEXT::eAll : return "All";
9466       case ValidationFeatureDisableEXT::eShaders : return "Shaders";
9467       case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety";
9468       case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters";
9469       case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes";
9470       case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks";
9471       case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles";
9472       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9473     }
9474   }
9475 
9476   enum class ValidationFeatureEnableEXT
9477   {
9478     eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
9479     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
9480     eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
9481     eDebugPrintf = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
9482     eSynchronizationValidation = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
9483   };
9484 
to_string(ValidationFeatureEnableEXT value)9485   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
9486   {
9487     switch ( value )
9488     {
9489       case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted";
9490       case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot";
9491       case ValidationFeatureEnableEXT::eBestPractices : return "BestPractices";
9492       case ValidationFeatureEnableEXT::eDebugPrintf : return "DebugPrintf";
9493       case ValidationFeatureEnableEXT::eSynchronizationValidation : return "SynchronizationValidation";
9494       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9495     }
9496   }
9497 
9498   enum class VendorId
9499   {
9500     eVIV = VK_VENDOR_ID_VIV,
9501     eVSI = VK_VENDOR_ID_VSI,
9502     eKazan = VK_VENDOR_ID_KAZAN,
9503     eCodeplay = VK_VENDOR_ID_CODEPLAY,
9504     eMESA = VK_VENDOR_ID_MESA
9505   };
9506 
to_string(VendorId value)9507   VULKAN_HPP_INLINE std::string to_string( VendorId value )
9508   {
9509     switch ( value )
9510     {
9511       case VendorId::eVIV : return "VIV";
9512       case VendorId::eVSI : return "VSI";
9513       case VendorId::eKazan : return "Kazan";
9514       case VendorId::eCodeplay : return "Codeplay";
9515       case VendorId::eMESA : return "MESA";
9516       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9517     }
9518   }
9519 
9520   enum class VertexInputRate
9521   {
9522     eVertex = VK_VERTEX_INPUT_RATE_VERTEX,
9523     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
9524   };
9525 
to_string(VertexInputRate value)9526   VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
9527   {
9528     switch ( value )
9529     {
9530       case VertexInputRate::eVertex : return "Vertex";
9531       case VertexInputRate::eInstance : return "Instance";
9532       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9533     }
9534   }
9535 
9536   enum class ViewportCoordinateSwizzleNV
9537   {
9538     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
9539     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
9540     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
9541     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
9542     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
9543     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
9544     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
9545     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
9546   };
9547 
to_string(ViewportCoordinateSwizzleNV value)9548   VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
9549   {
9550     switch ( value )
9551     {
9552       case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX";
9553       case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX";
9554       case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY";
9555       case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY";
9556       case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ";
9557       case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ";
9558       case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW";
9559       case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW";
9560       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
9561     }
9562   }
9563 
9564   template<typename T>
9565   struct IndexTypeValue
9566   {};
9567 
9568   template <>
9569   struct IndexTypeValue<uint16_t>
9570   {
9571     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
9572   };
9573 
9574   template <>
9575   struct CppType<IndexType, IndexType::eUint16>
9576   {
9577     using Type = uint16_t;
9578   };
9579 
9580   template <>
9581   struct IndexTypeValue<uint32_t>
9582   {
9583     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
9584   };
9585 
9586   template <>
9587   struct CppType<IndexType, IndexType::eUint32>
9588   {
9589     using Type = uint32_t;
9590   };
9591 
9592   template <>
9593   struct IndexTypeValue<uint8_t>
9594   {
9595     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
9596   };
9597 
9598   template <>
9599   struct CppType<IndexType, IndexType::eUint8EXT>
9600   {
9601     using Type = uint8_t;
9602   };
9603 
9604 
9605   using AccessFlags = Flags<AccessFlagBits>;
9606 
9607   template <> struct FlagTraits<AccessFlagBits>
9608   {
9609     enum : VkFlags
9610     {
9611       allFlags = VkFlags(AccessFlagBits::eIndirectCommandRead) | VkFlags(AccessFlagBits::eIndexRead) | VkFlags(AccessFlagBits::eVertexAttributeRead) | VkFlags(AccessFlagBits::eUniformRead) | VkFlags(AccessFlagBits::eInputAttachmentRead) | VkFlags(AccessFlagBits::eShaderRead) | VkFlags(AccessFlagBits::eShaderWrite) | VkFlags(AccessFlagBits::eColorAttachmentRead) | VkFlags(AccessFlagBits::eColorAttachmentWrite) | VkFlags(AccessFlagBits::eDepthStencilAttachmentRead) | VkFlags(AccessFlagBits::eDepthStencilAttachmentWrite) | VkFlags(AccessFlagBits::eTransferRead) | VkFlags(AccessFlagBits::eTransferWrite) | VkFlags(AccessFlagBits::eHostRead) | VkFlags(AccessFlagBits::eHostWrite) | VkFlags(AccessFlagBits::eMemoryRead) | VkFlags(AccessFlagBits::eMemoryWrite) | VkFlags(AccessFlagBits::eTransformFeedbackWriteEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterReadEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterWriteEXT) | VkFlags(AccessFlagBits::eConditionalRenderingReadEXT) | VkFlags(AccessFlagBits::eColorAttachmentReadNoncoherentEXT) | VkFlags(AccessFlagBits::eAccelerationStructureReadKHR) | VkFlags(AccessFlagBits::eAccelerationStructureWriteKHR) | VkFlags(AccessFlagBits::eShadingRateImageReadNV) | VkFlags(AccessFlagBits::eFragmentDensityMapReadEXT) | VkFlags(AccessFlagBits::eCommandPreprocessReadNV) | VkFlags(AccessFlagBits::eCommandPreprocessWriteNV)
9612     };
9613   };
9614 
operator |(AccessFlagBits bit0,AccessFlagBits bit1)9615   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9616   {
9617     return AccessFlags( bit0 ) | bit1;
9618   }
9619 
operator &(AccessFlagBits bit0,AccessFlagBits bit1)9620   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9621   {
9622     return AccessFlags( bit0 ) & bit1;
9623   }
9624 
operator ^(AccessFlagBits bit0,AccessFlagBits bit1)9625   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9626   {
9627     return AccessFlags( bit0 ) ^ bit1;
9628   }
9629 
operator ~(AccessFlagBits bits)9630   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT
9631   {
9632     return ~( AccessFlags( bits ) );
9633   }
9634 
to_string(AccessFlags value)9635   VULKAN_HPP_INLINE std::string to_string( AccessFlags value  )
9636   {
9637 
9638     if ( !value ) return "{}";
9639     std::string result;
9640 
9641     if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | ";
9642     if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | ";
9643     if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | ";
9644     if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | ";
9645     if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | ";
9646     if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | ";
9647     if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | ";
9648     if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | ";
9649     if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | ";
9650     if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | ";
9651     if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | ";
9652     if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | ";
9653     if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | ";
9654     if ( value & AccessFlagBits::eHostRead ) result += "HostRead | ";
9655     if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | ";
9656     if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | ";
9657     if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | ";
9658     if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | ";
9659     if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | ";
9660     if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | ";
9661     if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | ";
9662     if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | ";
9663     if ( value & AccessFlagBits::eAccelerationStructureReadKHR ) result += "AccelerationStructureReadKHR | ";
9664     if ( value & AccessFlagBits::eAccelerationStructureWriteKHR ) result += "AccelerationStructureWriteKHR | ";
9665     if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | ";
9666     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | ";
9667     if ( value & AccessFlagBits::eCommandPreprocessReadNV ) result += "CommandPreprocessReadNV | ";
9668     if ( value & AccessFlagBits::eCommandPreprocessWriteNV ) result += "CommandPreprocessWriteNV | ";
9669     return "{ " + result.substr(0, result.size() - 3) + " }";
9670   }
9671 
9672 
9673   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
9674 
to_string(AcquireProfilingLockFlagsKHR)9675   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR  )
9676   {
9677 
9678     return "{}";
9679   }
9680 
9681 #ifdef VK_USE_PLATFORM_ANDROID_KHR
9682   enum class AndroidSurfaceCreateFlagBitsKHR : VkFlags
9683   {};
9684 
to_string(AndroidSurfaceCreateFlagBitsKHR)9685   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
9686   {
9687     return "(void)";
9688   }
9689 
9690   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
9691 
to_string(AndroidSurfaceCreateFlagsKHR)9692   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR  )
9693   {
9694 
9695     return "{}";
9696   }
9697 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
9698 
9699 
9700   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
9701 
9702   template <> struct FlagTraits<AttachmentDescriptionFlagBits>
9703   {
9704     enum : VkFlags
9705     {
9706       allFlags = VkFlags(AttachmentDescriptionFlagBits::eMayAlias)
9707     };
9708   };
9709 
operator |(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9710   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9711   {
9712     return AttachmentDescriptionFlags( bit0 ) | bit1;
9713   }
9714 
operator &(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9715   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9716   {
9717     return AttachmentDescriptionFlags( bit0 ) & bit1;
9718   }
9719 
operator ^(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9720   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9721   {
9722     return AttachmentDescriptionFlags( bit0 ) ^ bit1;
9723   }
9724 
operator ~(AttachmentDescriptionFlagBits bits)9725   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
9726   {
9727     return ~( AttachmentDescriptionFlags( bits ) );
9728   }
9729 
to_string(AttachmentDescriptionFlags value)9730   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value  )
9731   {
9732 
9733     if ( !value ) return "{}";
9734     std::string result;
9735 
9736     if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | ";
9737     return "{ " + result.substr(0, result.size() - 3) + " }";
9738   }
9739 
9740 
9741   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
9742 
9743   template <> struct FlagTraits<BufferCreateFlagBits>
9744   {
9745     enum : VkFlags
9746     {
9747       allFlags = VkFlags(BufferCreateFlagBits::eSparseBinding) | VkFlags(BufferCreateFlagBits::eSparseResidency) | VkFlags(BufferCreateFlagBits::eSparseAliased) | VkFlags(BufferCreateFlagBits::eProtected) | VkFlags(BufferCreateFlagBits::eDeviceAddressCaptureReplay)
9748     };
9749   };
9750 
operator |(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9751   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9752   {
9753     return BufferCreateFlags( bit0 ) | bit1;
9754   }
9755 
operator &(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9756   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9757   {
9758     return BufferCreateFlags( bit0 ) & bit1;
9759   }
9760 
operator ^(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9761   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9762   {
9763     return BufferCreateFlags( bit0 ) ^ bit1;
9764   }
9765 
operator ~(BufferCreateFlagBits bits)9766   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9767   {
9768     return ~( BufferCreateFlags( bits ) );
9769   }
9770 
to_string(BufferCreateFlags value)9771   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value  )
9772   {
9773 
9774     if ( !value ) return "{}";
9775     std::string result;
9776 
9777     if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
9778     if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
9779     if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
9780     if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | ";
9781     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
9782     return "{ " + result.substr(0, result.size() - 3) + " }";
9783   }
9784 
9785 
9786   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
9787 
9788   template <> struct FlagTraits<BufferUsageFlagBits>
9789   {
9790     enum : VkFlags
9791     {
9792       allFlags = VkFlags(BufferUsageFlagBits::eTransferSrc) | VkFlags(BufferUsageFlagBits::eTransferDst) | VkFlags(BufferUsageFlagBits::eUniformTexelBuffer) | VkFlags(BufferUsageFlagBits::eStorageTexelBuffer) | VkFlags(BufferUsageFlagBits::eUniformBuffer) | VkFlags(BufferUsageFlagBits::eStorageBuffer) | VkFlags(BufferUsageFlagBits::eIndexBuffer) | VkFlags(BufferUsageFlagBits::eVertexBuffer) | VkFlags(BufferUsageFlagBits::eIndirectBuffer) | VkFlags(BufferUsageFlagBits::eShaderDeviceAddress) | VkFlags(BufferUsageFlagBits::eTransformFeedbackBufferEXT) | VkFlags(BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT) | VkFlags(BufferUsageFlagBits::eConditionalRenderingEXT) | VkFlags(BufferUsageFlagBits::eRayTracingKHR)
9793     };
9794   };
9795 
operator |(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9796   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9797   {
9798     return BufferUsageFlags( bit0 ) | bit1;
9799   }
9800 
operator &(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9801   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9802   {
9803     return BufferUsageFlags( bit0 ) & bit1;
9804   }
9805 
operator ^(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9806   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9807   {
9808     return BufferUsageFlags( bit0 ) ^ bit1;
9809   }
9810 
operator ~(BufferUsageFlagBits bits)9811   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9812   {
9813     return ~( BufferUsageFlags( bits ) );
9814   }
9815 
to_string(BufferUsageFlags value)9816   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value  )
9817   {
9818 
9819     if ( !value ) return "{}";
9820     std::string result;
9821 
9822     if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
9823     if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | ";
9824     if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
9825     if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
9826     if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | ";
9827     if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | ";
9828     if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | ";
9829     if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
9830     if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | ";
9831     if ( value & BufferUsageFlagBits::eShaderDeviceAddress ) result += "ShaderDeviceAddress | ";
9832     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | ";
9833     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | ";
9834     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
9835     if ( value & BufferUsageFlagBits::eRayTracingKHR ) result += "RayTracingKHR | ";
9836     return "{ " + result.substr(0, result.size() - 3) + " }";
9837   }
9838 
9839   enum class BufferViewCreateFlagBits : VkFlags
9840   {};
9841 
to_string(BufferViewCreateFlagBits)9842   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
9843   {
9844     return "(void)";
9845   }
9846 
9847   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
9848 
to_string(BufferViewCreateFlags)9849   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags  )
9850   {
9851 
9852     return "{}";
9853   }
9854 
9855 
9856   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
9857 
9858   template <> struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
9859   {
9860     enum : VkFlags
9861     {
9862       allFlags = VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowUpdate) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowCompaction) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eLowMemory)
9863     };
9864   };
9865 
operator |(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9866   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9867   {
9868     return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1;
9869   }
9870 
operator &(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9871   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator&( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9872   {
9873     return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1;
9874   }
9875 
operator ^(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)9876   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
9877   {
9878     return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1;
9879   }
9880 
operator ~(BuildAccelerationStructureFlagBitsKHR bits)9881   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
9882   {
9883     return ~( BuildAccelerationStructureFlagsKHR( bits ) );
9884   }
9885 
9886   using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
9887 
to_string(BuildAccelerationStructureFlagsKHR value)9888   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value  )
9889   {
9890 
9891     if ( !value ) return "{}";
9892     std::string result;
9893 
9894     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) result += "AllowUpdate | ";
9895     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) result += "AllowCompaction | ";
9896     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) result += "PreferFastTrace | ";
9897     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) result += "PreferFastBuild | ";
9898     if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory ) result += "LowMemory | ";
9899     return "{ " + result.substr(0, result.size() - 3) + " }";
9900   }
9901 
9902 
9903   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
9904 
9905   template <> struct FlagTraits<ColorComponentFlagBits>
9906   {
9907     enum : VkFlags
9908     {
9909       allFlags = VkFlags(ColorComponentFlagBits::eR) | VkFlags(ColorComponentFlagBits::eG) | VkFlags(ColorComponentFlagBits::eB) | VkFlags(ColorComponentFlagBits::eA)
9910     };
9911   };
9912 
operator |(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9913   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9914   {
9915     return ColorComponentFlags( bit0 ) | bit1;
9916   }
9917 
operator &(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9918   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9919   {
9920     return ColorComponentFlags( bit0 ) & bit1;
9921   }
9922 
operator ^(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9923   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9924   {
9925     return ColorComponentFlags( bit0 ) ^ bit1;
9926   }
9927 
operator ~(ColorComponentFlagBits bits)9928   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits ) VULKAN_HPP_NOEXCEPT
9929   {
9930     return ~( ColorComponentFlags( bits ) );
9931   }
9932 
to_string(ColorComponentFlags value)9933   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value  )
9934   {
9935 
9936     if ( !value ) return "{}";
9937     std::string result;
9938 
9939     if ( value & ColorComponentFlagBits::eR ) result += "R | ";
9940     if ( value & ColorComponentFlagBits::eG ) result += "G | ";
9941     if ( value & ColorComponentFlagBits::eB ) result += "B | ";
9942     if ( value & ColorComponentFlagBits::eA ) result += "A | ";
9943     return "{ " + result.substr(0, result.size() - 3) + " }";
9944   }
9945 
9946 
9947   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
9948 
9949   template <> struct FlagTraits<CommandBufferResetFlagBits>
9950   {
9951     enum : VkFlags
9952     {
9953       allFlags = VkFlags(CommandBufferResetFlagBits::eReleaseResources)
9954     };
9955   };
9956 
operator |(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9957   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9958   {
9959     return CommandBufferResetFlags( bit0 ) | bit1;
9960   }
9961 
operator &(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9962   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9963   {
9964     return CommandBufferResetFlags( bit0 ) & bit1;
9965   }
9966 
operator ^(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)9967   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9968   {
9969     return CommandBufferResetFlags( bit0 ) ^ bit1;
9970   }
9971 
operator ~(CommandBufferResetFlagBits bits)9972   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
9973   {
9974     return ~( CommandBufferResetFlags( bits ) );
9975   }
9976 
to_string(CommandBufferResetFlags value)9977   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value  )
9978   {
9979 
9980     if ( !value ) return "{}";
9981     std::string result;
9982 
9983     if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
9984     return "{ " + result.substr(0, result.size() - 3) + " }";
9985   }
9986 
9987 
9988   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
9989 
9990   template <> struct FlagTraits<CommandBufferUsageFlagBits>
9991   {
9992     enum : VkFlags
9993     {
9994       allFlags = VkFlags(CommandBufferUsageFlagBits::eOneTimeSubmit) | VkFlags(CommandBufferUsageFlagBits::eRenderPassContinue) | VkFlags(CommandBufferUsageFlagBits::eSimultaneousUse)
9995     };
9996   };
9997 
operator |(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)9998   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9999   {
10000     return CommandBufferUsageFlags( bit0 ) | bit1;
10001   }
10002 
operator &(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10003   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10004   {
10005     return CommandBufferUsageFlags( bit0 ) & bit1;
10006   }
10007 
operator ^(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10008   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10009   {
10010     return CommandBufferUsageFlags( bit0 ) ^ bit1;
10011   }
10012 
operator ~(CommandBufferUsageFlagBits bits)10013   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
10014   {
10015     return ~( CommandBufferUsageFlags( bits ) );
10016   }
10017 
to_string(CommandBufferUsageFlags value)10018   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value  )
10019   {
10020 
10021     if ( !value ) return "{}";
10022     std::string result;
10023 
10024     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | ";
10025     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | ";
10026     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | ";
10027     return "{ " + result.substr(0, result.size() - 3) + " }";
10028   }
10029 
10030 
10031   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
10032 
10033   template <> struct FlagTraits<CommandPoolCreateFlagBits>
10034   {
10035     enum : VkFlags
10036     {
10037       allFlags = VkFlags(CommandPoolCreateFlagBits::eTransient) | VkFlags(CommandPoolCreateFlagBits::eResetCommandBuffer) | VkFlags(CommandPoolCreateFlagBits::eProtected)
10038     };
10039   };
10040 
operator |(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10041   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10042   {
10043     return CommandPoolCreateFlags( bit0 ) | bit1;
10044   }
10045 
operator &(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10046   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10047   {
10048     return CommandPoolCreateFlags( bit0 ) & bit1;
10049   }
10050 
operator ^(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10051   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10052   {
10053     return CommandPoolCreateFlags( bit0 ) ^ bit1;
10054   }
10055 
operator ~(CommandPoolCreateFlagBits bits)10056   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10057   {
10058     return ~( CommandPoolCreateFlags( bits ) );
10059   }
10060 
to_string(CommandPoolCreateFlags value)10061   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value  )
10062   {
10063 
10064     if ( !value ) return "{}";
10065     std::string result;
10066 
10067     if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | ";
10068     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | ";
10069     if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | ";
10070     return "{ " + result.substr(0, result.size() - 3) + " }";
10071   }
10072 
10073 
10074   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
10075 
10076   template <> struct FlagTraits<CommandPoolResetFlagBits>
10077   {
10078     enum : VkFlags
10079     {
10080       allFlags = VkFlags(CommandPoolResetFlagBits::eReleaseResources)
10081     };
10082   };
10083 
operator |(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10084   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10085   {
10086     return CommandPoolResetFlags( bit0 ) | bit1;
10087   }
10088 
operator &(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10089   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10090   {
10091     return CommandPoolResetFlags( bit0 ) & bit1;
10092   }
10093 
operator ^(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10094   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10095   {
10096     return CommandPoolResetFlags( bit0 ) ^ bit1;
10097   }
10098 
operator ~(CommandPoolResetFlagBits bits)10099   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits ) VULKAN_HPP_NOEXCEPT
10100   {
10101     return ~( CommandPoolResetFlags( bits ) );
10102   }
10103 
to_string(CommandPoolResetFlags value)10104   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value  )
10105   {
10106 
10107     if ( !value ) return "{}";
10108     std::string result;
10109 
10110     if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
10111     return "{ " + result.substr(0, result.size() - 3) + " }";
10112   }
10113 
10114   enum class CommandPoolTrimFlagBits : VkFlags
10115   {};
10116 
to_string(CommandPoolTrimFlagBits)10117   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
10118   {
10119     return "(void)";
10120   }
10121 
10122   using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits>;
10123 
10124   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
10125 
to_string(CommandPoolTrimFlags)10126   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags  )
10127   {
10128 
10129     return "{}";
10130   }
10131 
10132 
10133   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
10134 
10135   template <> struct FlagTraits<CompositeAlphaFlagBitsKHR>
10136   {
10137     enum : VkFlags
10138     {
10139       allFlags = VkFlags(CompositeAlphaFlagBitsKHR::eOpaque) | VkFlags(CompositeAlphaFlagBitsKHR::ePreMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::ePostMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::eInherit)
10140     };
10141   };
10142 
operator |(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10143   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10144   {
10145     return CompositeAlphaFlagsKHR( bit0 ) | bit1;
10146   }
10147 
operator &(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10148   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10149   {
10150     return CompositeAlphaFlagsKHR( bit0 ) & bit1;
10151   }
10152 
operator ^(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)10153   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10154   {
10155     return CompositeAlphaFlagsKHR( bit0 ) ^ bit1;
10156   }
10157 
operator ~(CompositeAlphaFlagBitsKHR bits)10158   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10159   {
10160     return ~( CompositeAlphaFlagsKHR( bits ) );
10161   }
10162 
to_string(CompositeAlphaFlagsKHR value)10163   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value  )
10164   {
10165 
10166     if ( !value ) return "{}";
10167     std::string result;
10168 
10169     if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
10170     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | ";
10171     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | ";
10172     if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | ";
10173     return "{ " + result.substr(0, result.size() - 3) + " }";
10174   }
10175 
10176 
10177   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
10178 
10179   template <> struct FlagTraits<ConditionalRenderingFlagBitsEXT>
10180   {
10181     enum : VkFlags
10182     {
10183       allFlags = VkFlags(ConditionalRenderingFlagBitsEXT::eInverted)
10184     };
10185   };
10186 
operator |(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10187   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10188   {
10189     return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
10190   }
10191 
operator &(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10192   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10193   {
10194     return ConditionalRenderingFlagsEXT( bit0 ) & bit1;
10195   }
10196 
operator ^(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)10197   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10198   {
10199     return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1;
10200   }
10201 
operator ~(ConditionalRenderingFlagBitsEXT bits)10202   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10203   {
10204     return ~( ConditionalRenderingFlagsEXT( bits ) );
10205   }
10206 
to_string(ConditionalRenderingFlagsEXT value)10207   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value  )
10208   {
10209 
10210     if ( !value ) return "{}";
10211     std::string result;
10212 
10213     if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | ";
10214     return "{ " + result.substr(0, result.size() - 3) + " }";
10215   }
10216 
10217 
10218   using CullModeFlags = Flags<CullModeFlagBits>;
10219 
10220   template <> struct FlagTraits<CullModeFlagBits>
10221   {
10222     enum : VkFlags
10223     {
10224       allFlags = VkFlags(CullModeFlagBits::eNone) | VkFlags(CullModeFlagBits::eFront) | VkFlags(CullModeFlagBits::eBack) | VkFlags(CullModeFlagBits::eFrontAndBack)
10225     };
10226   };
10227 
operator |(CullModeFlagBits bit0,CullModeFlagBits bit1)10228   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10229   {
10230     return CullModeFlags( bit0 ) | bit1;
10231   }
10232 
operator &(CullModeFlagBits bit0,CullModeFlagBits bit1)10233   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10234   {
10235     return CullModeFlags( bit0 ) & bit1;
10236   }
10237 
operator ^(CullModeFlagBits bit0,CullModeFlagBits bit1)10238   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10239   {
10240     return CullModeFlags( bit0 ) ^ bit1;
10241   }
10242 
operator ~(CullModeFlagBits bits)10243   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10244   {
10245     return ~( CullModeFlags( bits ) );
10246   }
10247 
to_string(CullModeFlags value)10248   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value  )
10249   {
10250 
10251     if ( !value ) return "{}";
10252     std::string result;
10253 
10254     if ( value & CullModeFlagBits::eFront ) result += "Front | ";
10255     if ( value & CullModeFlagBits::eBack ) result += "Back | ";
10256     return "{ " + result.substr(0, result.size() - 3) + " }";
10257   }
10258 
10259 
10260   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
10261 
10262   template <> struct FlagTraits<DebugReportFlagBitsEXT>
10263   {
10264     enum : VkFlags
10265     {
10266       allFlags = VkFlags(DebugReportFlagBitsEXT::eInformation) | VkFlags(DebugReportFlagBitsEXT::eWarning) | VkFlags(DebugReportFlagBitsEXT::ePerformanceWarning) | VkFlags(DebugReportFlagBitsEXT::eError) | VkFlags(DebugReportFlagBitsEXT::eDebug)
10267     };
10268   };
10269 
operator |(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)10270   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10271   {
10272     return DebugReportFlagsEXT( bit0 ) | bit1;
10273   }
10274 
operator &(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)10275   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10276   {
10277     return DebugReportFlagsEXT( bit0 ) & bit1;
10278   }
10279 
operator ^(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)10280   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10281   {
10282     return DebugReportFlagsEXT( bit0 ) ^ bit1;
10283   }
10284 
operator ~(DebugReportFlagBitsEXT bits)10285   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10286   {
10287     return ~( DebugReportFlagsEXT( bits ) );
10288   }
10289 
to_string(DebugReportFlagsEXT value)10290   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value  )
10291   {
10292 
10293     if ( !value ) return "{}";
10294     std::string result;
10295 
10296     if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | ";
10297     if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | ";
10298     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | ";
10299     if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | ";
10300     if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | ";
10301     return "{ " + result.substr(0, result.size() - 3) + " }";
10302   }
10303 
10304 
10305   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
10306 
10307   template <> struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
10308   {
10309     enum : VkFlags
10310     {
10311       allFlags = VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eVerbose) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eInfo) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eWarning) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eError)
10312     };
10313   };
10314 
operator |(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)10315   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10316   {
10317     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
10318   }
10319 
operator &(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)10320   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10321   {
10322     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1;
10323   }
10324 
operator ^(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)10325   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10326   {
10327     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1;
10328   }
10329 
operator ~(DebugUtilsMessageSeverityFlagBitsEXT bits)10330   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10331   {
10332     return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
10333   }
10334 
to_string(DebugUtilsMessageSeverityFlagsEXT value)10335   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value  )
10336   {
10337 
10338     if ( !value ) return "{}";
10339     std::string result;
10340 
10341     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | ";
10342     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | ";
10343     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | ";
10344     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | ";
10345     return "{ " + result.substr(0, result.size() - 3) + " }";
10346   }
10347 
10348 
10349   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
10350 
10351   template <> struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
10352   {
10353     enum : VkFlags
10354     {
10355       allFlags = VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eGeneral) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eValidation) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::ePerformance)
10356     };
10357   };
10358 
operator |(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)10359   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10360   {
10361     return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
10362   }
10363 
operator &(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)10364   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10365   {
10366     return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1;
10367   }
10368 
operator ^(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)10369   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
10370   {
10371     return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1;
10372   }
10373 
operator ~(DebugUtilsMessageTypeFlagBitsEXT bits)10374   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
10375   {
10376     return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
10377   }
10378 
to_string(DebugUtilsMessageTypeFlagsEXT value)10379   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value  )
10380   {
10381 
10382     if ( !value ) return "{}";
10383     std::string result;
10384 
10385     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | ";
10386     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | ";
10387     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | ";
10388     return "{ " + result.substr(0, result.size() - 3) + " }";
10389   }
10390 
10391   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkFlags
10392   {};
10393 
to_string(DebugUtilsMessengerCallbackDataFlagBitsEXT)10394   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
10395   {
10396     return "(void)";
10397   }
10398 
10399   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
10400 
to_string(DebugUtilsMessengerCallbackDataFlagsEXT)10401   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT  )
10402   {
10403 
10404     return "{}";
10405   }
10406 
10407   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkFlags
10408   {};
10409 
to_string(DebugUtilsMessengerCreateFlagBitsEXT)10410   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
10411   {
10412     return "(void)";
10413   }
10414 
10415   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
10416 
to_string(DebugUtilsMessengerCreateFlagsEXT)10417   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT  )
10418   {
10419 
10420     return "{}";
10421   }
10422 
10423 
10424   using DependencyFlags = Flags<DependencyFlagBits>;
10425 
10426   template <> struct FlagTraits<DependencyFlagBits>
10427   {
10428     enum : VkFlags
10429     {
10430       allFlags = VkFlags(DependencyFlagBits::eByRegion) | VkFlags(DependencyFlagBits::eDeviceGroup) | VkFlags(DependencyFlagBits::eViewLocal)
10431     };
10432   };
10433 
operator |(DependencyFlagBits bit0,DependencyFlagBits bit1)10434   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10435   {
10436     return DependencyFlags( bit0 ) | bit1;
10437   }
10438 
operator &(DependencyFlagBits bit0,DependencyFlagBits bit1)10439   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10440   {
10441     return DependencyFlags( bit0 ) & bit1;
10442   }
10443 
operator ^(DependencyFlagBits bit0,DependencyFlagBits bit1)10444   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10445   {
10446     return DependencyFlags( bit0 ) ^ bit1;
10447   }
10448 
operator ~(DependencyFlagBits bits)10449   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT
10450   {
10451     return ~( DependencyFlags( bits ) );
10452   }
10453 
to_string(DependencyFlags value)10454   VULKAN_HPP_INLINE std::string to_string( DependencyFlags value  )
10455   {
10456 
10457     if ( !value ) return "{}";
10458     std::string result;
10459 
10460     if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | ";
10461     if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | ";
10462     if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | ";
10463     return "{ " + result.substr(0, result.size() - 3) + " }";
10464   }
10465 
10466 
10467   using DescriptorBindingFlags = Flags<DescriptorBindingFlagBits>;
10468 
10469   template <> struct FlagTraits<DescriptorBindingFlagBits>
10470   {
10471     enum : VkFlags
10472     {
10473       allFlags = VkFlags(DescriptorBindingFlagBits::eUpdateAfterBind) | VkFlags(DescriptorBindingFlagBits::eUpdateUnusedWhilePending) | VkFlags(DescriptorBindingFlagBits::ePartiallyBound) | VkFlags(DescriptorBindingFlagBits::eVariableDescriptorCount)
10474     };
10475   };
10476 
operator |(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)10477   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10478   {
10479     return DescriptorBindingFlags( bit0 ) | bit1;
10480   }
10481 
operator &(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)10482   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10483   {
10484     return DescriptorBindingFlags( bit0 ) & bit1;
10485   }
10486 
operator ^(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)10487   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10488   {
10489     return DescriptorBindingFlags( bit0 ) ^ bit1;
10490   }
10491 
operator ~(DescriptorBindingFlagBits bits)10492   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits ) VULKAN_HPP_NOEXCEPT
10493   {
10494     return ~( DescriptorBindingFlags( bits ) );
10495   }
10496 
10497   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
10498 
to_string(DescriptorBindingFlags value)10499   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value  )
10500   {
10501 
10502     if ( !value ) return "{}";
10503     std::string result;
10504 
10505     if ( value & DescriptorBindingFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
10506     if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | ";
10507     if ( value & DescriptorBindingFlagBits::ePartiallyBound ) result += "PartiallyBound | ";
10508     if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount ) result += "VariableDescriptorCount | ";
10509     return "{ " + result.substr(0, result.size() - 3) + " }";
10510   }
10511 
10512 
10513   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
10514 
10515   template <> struct FlagTraits<DescriptorPoolCreateFlagBits>
10516   {
10517     enum : VkFlags
10518     {
10519       allFlags = VkFlags(DescriptorPoolCreateFlagBits::eFreeDescriptorSet) | VkFlags(DescriptorPoolCreateFlagBits::eUpdateAfterBind)
10520     };
10521   };
10522 
operator |(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10523   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10524   {
10525     return DescriptorPoolCreateFlags( bit0 ) | bit1;
10526   }
10527 
operator &(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10528   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10529   {
10530     return DescriptorPoolCreateFlags( bit0 ) & bit1;
10531   }
10532 
operator ^(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10533   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10534   {
10535     return DescriptorPoolCreateFlags( bit0 ) ^ bit1;
10536   }
10537 
operator ~(DescriptorPoolCreateFlagBits bits)10538   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10539   {
10540     return ~( DescriptorPoolCreateFlags( bits ) );
10541   }
10542 
to_string(DescriptorPoolCreateFlags value)10543   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value  )
10544   {
10545 
10546     if ( !value ) return "{}";
10547     std::string result;
10548 
10549     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | ";
10550     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | ";
10551     return "{ " + result.substr(0, result.size() - 3) + " }";
10552   }
10553 
10554   enum class DescriptorPoolResetFlagBits : VkFlags
10555   {};
10556 
to_string(DescriptorPoolResetFlagBits)10557   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
10558   {
10559     return "(void)";
10560   }
10561 
10562   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
10563 
to_string(DescriptorPoolResetFlags)10564   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags  )
10565   {
10566 
10567     return "{}";
10568   }
10569 
10570 
10571   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
10572 
10573   template <> struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
10574   {
10575     enum : VkFlags
10576     {
10577       allFlags = VkFlags(DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool) | VkFlags(DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR)
10578     };
10579   };
10580 
operator |(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10581   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10582   {
10583     return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
10584   }
10585 
operator &(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10586   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10587   {
10588     return DescriptorSetLayoutCreateFlags( bit0 ) & bit1;
10589   }
10590 
operator ^(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10591   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10592   {
10593     return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1;
10594   }
10595 
operator ~(DescriptorSetLayoutCreateFlagBits bits)10596   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10597   {
10598     return ~( DescriptorSetLayoutCreateFlags( bits ) );
10599   }
10600 
to_string(DescriptorSetLayoutCreateFlags value)10601   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value  )
10602   {
10603 
10604     if ( !value ) return "{}";
10605     std::string result;
10606 
10607     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) result += "UpdateAfterBindPool | ";
10608     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | ";
10609     return "{ " + result.substr(0, result.size() - 3) + " }";
10610   }
10611 
10612   enum class DescriptorUpdateTemplateCreateFlagBits : VkFlags
10613   {};
10614 
to_string(DescriptorUpdateTemplateCreateFlagBits)10615   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
10616   {
10617     return "(void)";
10618   }
10619 
10620   using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits>;
10621 
10622   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
10623 
to_string(DescriptorUpdateTemplateCreateFlags)10624   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags  )
10625   {
10626 
10627     return "{}";
10628   }
10629 
10630 
10631   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
10632 
to_string(DeviceCreateFlags)10633   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags  )
10634   {
10635 
10636     return "{}";
10637   }
10638 
10639 
10640   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
10641 
10642   template <> struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
10643   {
10644     enum : VkFlags
10645     {
10646       allFlags = VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints)
10647     };
10648   };
10649 
operator |(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10650   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10651   {
10652     return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1;
10653   }
10654 
operator &(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10655   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator&( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10656   {
10657     return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1;
10658   }
10659 
operator ^(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)10660   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
10661   {
10662     return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1;
10663   }
10664 
operator ~(DeviceDiagnosticsConfigFlagBitsNV bits)10665   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
10666   {
10667     return ~( DeviceDiagnosticsConfigFlagsNV( bits ) );
10668   }
10669 
to_string(DeviceDiagnosticsConfigFlagsNV value)10670   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value  )
10671   {
10672 
10673     if ( !value ) return "{}";
10674     std::string result;
10675 
10676     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) result += "EnableShaderDebugInfo | ";
10677     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) result += "EnableResourceTracking | ";
10678     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) result += "EnableAutomaticCheckpoints | ";
10679     return "{ " + result.substr(0, result.size() - 3) + " }";
10680   }
10681 
10682 
10683   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
10684 
10685   template <> struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
10686   {
10687     enum : VkFlags
10688     {
10689       allFlags = VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocal) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eRemote) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eSum) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice)
10690     };
10691   };
10692 
operator |(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10693   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10694   {
10695     return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
10696   }
10697 
operator &(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10698   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10699   {
10700     return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1;
10701   }
10702 
operator ^(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)10703   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10704   {
10705     return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1;
10706   }
10707 
operator ~(DeviceGroupPresentModeFlagBitsKHR bits)10708   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10709   {
10710     return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
10711   }
10712 
to_string(DeviceGroupPresentModeFlagsKHR value)10713   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value  )
10714   {
10715 
10716     if ( !value ) return "{}";
10717     std::string result;
10718 
10719     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | ";
10720     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | ";
10721     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | ";
10722     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | ";
10723     return "{ " + result.substr(0, result.size() - 3) + " }";
10724   }
10725 
10726   enum class DeviceMemoryReportFlagBitsEXT : VkFlags
10727   {};
10728 
to_string(DeviceMemoryReportFlagBitsEXT)10729   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT )
10730   {
10731     return "(void)";
10732   }
10733 
10734   using DeviceMemoryReportFlagsEXT = Flags<DeviceMemoryReportFlagBitsEXT>;
10735 
to_string(DeviceMemoryReportFlagsEXT)10736   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT  )
10737   {
10738 
10739     return "{}";
10740   }
10741 
10742 
10743   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
10744 
10745   template <> struct FlagTraits<DeviceQueueCreateFlagBits>
10746   {
10747     enum : VkFlags
10748     {
10749       allFlags = VkFlags(DeviceQueueCreateFlagBits::eProtected)
10750     };
10751   };
10752 
operator |(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10753   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10754   {
10755     return DeviceQueueCreateFlags( bit0 ) | bit1;
10756   }
10757 
operator &(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10758   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10759   {
10760     return DeviceQueueCreateFlags( bit0 ) & bit1;
10761   }
10762 
operator ^(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)10763   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10764   {
10765     return DeviceQueueCreateFlags( bit0 ) ^ bit1;
10766   }
10767 
operator ~(DeviceQueueCreateFlagBits bits)10768   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10769   {
10770     return ~( DeviceQueueCreateFlags( bits ) );
10771   }
10772 
to_string(DeviceQueueCreateFlags value)10773   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value  )
10774   {
10775 
10776     if ( !value ) return "{}";
10777     std::string result;
10778 
10779     if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | ";
10780     return "{ " + result.substr(0, result.size() - 3) + " }";
10781   }
10782 
10783 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
10784   enum class DirectFBSurfaceCreateFlagBitsEXT : VkFlags
10785   {};
10786 
to_string(DirectFBSurfaceCreateFlagBitsEXT)10787   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT )
10788   {
10789     return "(void)";
10790   }
10791 
10792   using DirectFBSurfaceCreateFlagsEXT = Flags<DirectFBSurfaceCreateFlagBitsEXT>;
10793 
to_string(DirectFBSurfaceCreateFlagsEXT)10794   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT  )
10795   {
10796 
10797     return "{}";
10798   }
10799 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
10800 
10801   enum class DisplayModeCreateFlagBitsKHR : VkFlags
10802   {};
10803 
to_string(DisplayModeCreateFlagBitsKHR)10804   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
10805   {
10806     return "(void)";
10807   }
10808 
10809   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
10810 
to_string(DisplayModeCreateFlagsKHR)10811   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR  )
10812   {
10813 
10814     return "{}";
10815   }
10816 
10817 
10818   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
10819 
10820   template <> struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
10821   {
10822     enum : VkFlags
10823     {
10824       allFlags = VkFlags(DisplayPlaneAlphaFlagBitsKHR::eOpaque) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::eGlobal) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixel) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied)
10825     };
10826   };
10827 
operator |(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10828   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10829   {
10830     return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
10831   }
10832 
operator &(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10833   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10834   {
10835     return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1;
10836   }
10837 
operator ^(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)10838   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
10839   {
10840     return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1;
10841   }
10842 
operator ~(DisplayPlaneAlphaFlagBitsKHR bits)10843   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
10844   {
10845     return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
10846   }
10847 
to_string(DisplayPlaneAlphaFlagsKHR value)10848   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value  )
10849   {
10850 
10851     if ( !value ) return "{}";
10852     std::string result;
10853 
10854     if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
10855     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | ";
10856     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | ";
10857     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | ";
10858     return "{ " + result.substr(0, result.size() - 3) + " }";
10859   }
10860 
10861   enum class DisplaySurfaceCreateFlagBitsKHR : VkFlags
10862   {};
10863 
to_string(DisplaySurfaceCreateFlagBitsKHR)10864   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
10865   {
10866     return "(void)";
10867   }
10868 
10869   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
10870 
to_string(DisplaySurfaceCreateFlagsKHR)10871   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR  )
10872   {
10873 
10874     return "{}";
10875   }
10876 
10877   enum class EventCreateFlagBits : VkFlags
10878   {};
10879 
to_string(EventCreateFlagBits)10880   VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits )
10881   {
10882     return "(void)";
10883   }
10884 
10885   using EventCreateFlags = Flags<EventCreateFlagBits>;
10886 
to_string(EventCreateFlags)10887   VULKAN_HPP_INLINE std::string to_string( EventCreateFlags  )
10888   {
10889 
10890     return "{}";
10891   }
10892 
10893 
10894   using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits>;
10895 
10896   template <> struct FlagTraits<ExternalFenceFeatureFlagBits>
10897   {
10898     enum : VkFlags
10899     {
10900       allFlags = VkFlags(ExternalFenceFeatureFlagBits::eExportable) | VkFlags(ExternalFenceFeatureFlagBits::eImportable)
10901     };
10902   };
10903 
operator |(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10904   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10905   {
10906     return ExternalFenceFeatureFlags( bit0 ) | bit1;
10907   }
10908 
operator &(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10909   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10910   {
10911     return ExternalFenceFeatureFlags( bit0 ) & bit1;
10912   }
10913 
operator ^(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10914   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10915   {
10916     return ExternalFenceFeatureFlags( bit0 ) ^ bit1;
10917   }
10918 
operator ~(ExternalFenceFeatureFlagBits bits)10919   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
10920   {
10921     return ~( ExternalFenceFeatureFlags( bits ) );
10922   }
10923 
10924   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
10925 
to_string(ExternalFenceFeatureFlags value)10926   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value  )
10927   {
10928 
10929     if ( !value ) return "{}";
10930     std::string result;
10931 
10932     if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | ";
10933     if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | ";
10934     return "{ " + result.substr(0, result.size() - 3) + " }";
10935   }
10936 
10937 
10938   using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits>;
10939 
10940   template <> struct FlagTraits<ExternalFenceHandleTypeFlagBits>
10941   {
10942     enum : VkFlags
10943     {
10944       allFlags = VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalFenceHandleTypeFlagBits::eSyncFd)
10945     };
10946   };
10947 
operator |(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10948   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10949   {
10950     return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
10951   }
10952 
operator &(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10953   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10954   {
10955     return ExternalFenceHandleTypeFlags( bit0 ) & bit1;
10956   }
10957 
operator ^(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10958   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10959   {
10960     return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1;
10961   }
10962 
operator ~(ExternalFenceHandleTypeFlagBits bits)10963   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10964   {
10965     return ~( ExternalFenceHandleTypeFlags( bits ) );
10966   }
10967 
10968   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
10969 
to_string(ExternalFenceHandleTypeFlags value)10970   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value  )
10971   {
10972 
10973     if ( !value ) return "{}";
10974     std::string result;
10975 
10976     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
10977     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
10978     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
10979     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
10980     return "{ " + result.substr(0, result.size() - 3) + " }";
10981   }
10982 
10983 
10984   using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits>;
10985 
10986   template <> struct FlagTraits<ExternalMemoryFeatureFlagBits>
10987   {
10988     enum : VkFlags
10989     {
10990       allFlags = VkFlags(ExternalMemoryFeatureFlagBits::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBits::eExportable) | VkFlags(ExternalMemoryFeatureFlagBits::eImportable)
10991     };
10992   };
10993 
operator |(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10994   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10995   {
10996     return ExternalMemoryFeatureFlags( bit0 ) | bit1;
10997   }
10998 
operator &(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10999   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11000   {
11001     return ExternalMemoryFeatureFlags( bit0 ) & bit1;
11002   }
11003 
operator ^(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11004   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11005   {
11006     return ExternalMemoryFeatureFlags( bit0 ) ^ bit1;
11007   }
11008 
operator ~(ExternalMemoryFeatureFlagBits bits)11009   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11010   {
11011     return ~( ExternalMemoryFeatureFlags( bits ) );
11012   }
11013 
11014   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
11015 
to_string(ExternalMemoryFeatureFlags value)11016   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value  )
11017   {
11018 
11019     if ( !value ) return "{}";
11020     std::string result;
11021 
11022     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | ";
11023     if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | ";
11024     if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | ";
11025     return "{ " + result.substr(0, result.size() - 3) + " }";
11026   }
11027 
11028 
11029   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
11030 
11031   template <> struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
11032   {
11033     enum : VkFlags
11034     {
11035       allFlags = VkFlags(ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eExportable) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eImportable)
11036     };
11037   };
11038 
operator |(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)11039   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11040   {
11041     return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
11042   }
11043 
operator &(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)11044   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11045   {
11046     return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1;
11047   }
11048 
operator ^(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)11049   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11050   {
11051     return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1;
11052   }
11053 
operator ~(ExternalMemoryFeatureFlagBitsNV bits)11054   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11055   {
11056     return ~( ExternalMemoryFeatureFlagsNV( bits ) );
11057   }
11058 
to_string(ExternalMemoryFeatureFlagsNV value)11059   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value  )
11060   {
11061 
11062     if ( !value ) return "{}";
11063     std::string result;
11064 
11065     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | ";
11066     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | ";
11067     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | ";
11068     return "{ " + result.substr(0, result.size() - 3) + " }";
11069   }
11070 
11071 
11072   using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits>;
11073 
11074   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
11075   {
11076     enum : VkFlags
11077     {
11078       allFlags = VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11Texture) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Heap) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Resource) | VkFlags(ExternalMemoryHandleTypeFlagBits::eDmaBufEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT)
11079     };
11080   };
11081 
operator |(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11082   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11083   {
11084     return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
11085   }
11086 
operator &(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11087   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11088   {
11089     return ExternalMemoryHandleTypeFlags( bit0 ) & bit1;
11090   }
11091 
operator ^(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11092   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11093   {
11094     return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1;
11095   }
11096 
operator ~(ExternalMemoryHandleTypeFlagBits bits)11097   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11098   {
11099     return ~( ExternalMemoryHandleTypeFlags( bits ) );
11100   }
11101 
11102   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
11103 
to_string(ExternalMemoryHandleTypeFlags value)11104   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value  )
11105   {
11106 
11107     if ( !value ) return "{}";
11108     std::string result;
11109 
11110     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
11111     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11112     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11113     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | ";
11114     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | ";
11115     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | ";
11116     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | ";
11117     if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | ";
11118     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | ";
11119     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | ";
11120     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | ";
11121     return "{ " + result.substr(0, result.size() - 3) + " }";
11122   }
11123 
11124 
11125   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
11126 
11127   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
11128   {
11129     enum : VkFlags
11130     {
11131       allFlags = VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt)
11132     };
11133   };
11134 
operator |(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)11135   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11136   {
11137     return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
11138   }
11139 
operator &(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)11140   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11141   {
11142     return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1;
11143   }
11144 
operator ^(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)11145   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11146   {
11147     return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1;
11148   }
11149 
operator ~(ExternalMemoryHandleTypeFlagBitsNV bits)11150   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11151   {
11152     return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
11153   }
11154 
to_string(ExternalMemoryHandleTypeFlagsNV value)11155   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value  )
11156   {
11157 
11158     if ( !value ) return "{}";
11159     std::string result;
11160 
11161     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11162     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11163     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | ";
11164     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | ";
11165     return "{ " + result.substr(0, result.size() - 3) + " }";
11166   }
11167 
11168 
11169   using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits>;
11170 
11171   template <> struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
11172   {
11173     enum : VkFlags
11174     {
11175       allFlags = VkFlags(ExternalSemaphoreFeatureFlagBits::eExportable) | VkFlags(ExternalSemaphoreFeatureFlagBits::eImportable)
11176     };
11177   };
11178 
operator |(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11179   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11180   {
11181     return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
11182   }
11183 
operator &(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11184   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11185   {
11186     return ExternalSemaphoreFeatureFlags( bit0 ) & bit1;
11187   }
11188 
operator ^(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11189   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11190   {
11191     return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1;
11192   }
11193 
operator ~(ExternalSemaphoreFeatureFlagBits bits)11194   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11195   {
11196     return ~( ExternalSemaphoreFeatureFlags( bits ) );
11197   }
11198 
11199   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
11200 
to_string(ExternalSemaphoreFeatureFlags value)11201   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value  )
11202   {
11203 
11204     if ( !value ) return "{}";
11205     std::string result;
11206 
11207     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | ";
11208     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | ";
11209     return "{ " + result.substr(0, result.size() - 3) + " }";
11210   }
11211 
11212 
11213   using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits>;
11214 
11215   template <> struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
11216   {
11217     enum : VkFlags
11218     {
11219       allFlags = VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eSyncFd)
11220     };
11221   };
11222 
operator |(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11223   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11224   {
11225     return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
11226   }
11227 
operator &(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11228   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11229   {
11230     return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1;
11231   }
11232 
operator ^(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11233   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11234   {
11235     return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1;
11236   }
11237 
operator ~(ExternalSemaphoreHandleTypeFlagBits bits)11238   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11239   {
11240     return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
11241   }
11242 
11243   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
11244 
to_string(ExternalSemaphoreHandleTypeFlags value)11245   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value  )
11246   {
11247 
11248     if ( !value ) return "{}";
11249     std::string result;
11250 
11251     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
11252     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
11253     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
11254     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | ";
11255     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
11256     return "{ " + result.substr(0, result.size() - 3) + " }";
11257   }
11258 
11259 
11260   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
11261 
11262   template <> struct FlagTraits<FenceCreateFlagBits>
11263   {
11264     enum : VkFlags
11265     {
11266       allFlags = VkFlags(FenceCreateFlagBits::eSignaled)
11267     };
11268   };
11269 
operator |(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)11270   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11271   {
11272     return FenceCreateFlags( bit0 ) | bit1;
11273   }
11274 
operator &(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)11275   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11276   {
11277     return FenceCreateFlags( bit0 ) & bit1;
11278   }
11279 
operator ^(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)11280   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11281   {
11282     return FenceCreateFlags( bit0 ) ^ bit1;
11283   }
11284 
operator ~(FenceCreateFlagBits bits)11285   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11286   {
11287     return ~( FenceCreateFlags( bits ) );
11288   }
11289 
to_string(FenceCreateFlags value)11290   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value  )
11291   {
11292 
11293     if ( !value ) return "{}";
11294     std::string result;
11295 
11296     if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | ";
11297     return "{ " + result.substr(0, result.size() - 3) + " }";
11298   }
11299 
11300 
11301   using FenceImportFlags = Flags<FenceImportFlagBits>;
11302 
11303   template <> struct FlagTraits<FenceImportFlagBits>
11304   {
11305     enum : VkFlags
11306     {
11307       allFlags = VkFlags(FenceImportFlagBits::eTemporary)
11308     };
11309   };
11310 
operator |(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11311   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11312   {
11313     return FenceImportFlags( bit0 ) | bit1;
11314   }
11315 
operator &(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11316   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11317   {
11318     return FenceImportFlags( bit0 ) & bit1;
11319   }
11320 
operator ^(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11321   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11322   {
11323     return FenceImportFlags( bit0 ) ^ bit1;
11324   }
11325 
operator ~(FenceImportFlagBits bits)11326   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
11327   {
11328     return ~( FenceImportFlags( bits ) );
11329   }
11330 
11331   using FenceImportFlagsKHR = FenceImportFlags;
11332 
to_string(FenceImportFlags value)11333   VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value  )
11334   {
11335 
11336     if ( !value ) return "{}";
11337     std::string result;
11338 
11339     if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | ";
11340     return "{ " + result.substr(0, result.size() - 3) + " }";
11341   }
11342 
11343 
11344   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
11345 
11346   template <> struct FlagTraits<FormatFeatureFlagBits>
11347   {
11348     enum : VkFlags
11349     {
11350       allFlags = VkFlags(FormatFeatureFlagBits::eSampledImage) | VkFlags(FormatFeatureFlagBits::eStorageImage) | VkFlags(FormatFeatureFlagBits::eStorageImageAtomic) | VkFlags(FormatFeatureFlagBits::eUniformTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBufferAtomic) | VkFlags(FormatFeatureFlagBits::eVertexBuffer) | VkFlags(FormatFeatureFlagBits::eColorAttachment) | VkFlags(FormatFeatureFlagBits::eColorAttachmentBlend) | VkFlags(FormatFeatureFlagBits::eDepthStencilAttachment) | VkFlags(FormatFeatureFlagBits::eBlitSrc) | VkFlags(FormatFeatureFlagBits::eBlitDst) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterLinear) | VkFlags(FormatFeatureFlagBits::eTransferSrc) | VkFlags(FormatFeatureFlagBits::eTransferDst) | VkFlags(FormatFeatureFlagBits::eMidpointChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable) | VkFlags(FormatFeatureFlagBits::eDisjoint) | VkFlags(FormatFeatureFlagBits::eCositedChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterMinmax) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterCubicIMG) | VkFlags(FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR) | VkFlags(FormatFeatureFlagBits::eFragmentDensityMapEXT) | VkFlags(FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR)
11351     };
11352   };
11353 
operator |(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)11354   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11355   {
11356     return FormatFeatureFlags( bit0 ) | bit1;
11357   }
11358 
operator &(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)11359   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11360   {
11361     return FormatFeatureFlags( bit0 ) & bit1;
11362   }
11363 
operator ^(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)11364   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11365   {
11366     return FormatFeatureFlags( bit0 ) ^ bit1;
11367   }
11368 
operator ~(FormatFeatureFlagBits bits)11369   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11370   {
11371     return ~( FormatFeatureFlags( bits ) );
11372   }
11373 
to_string(FormatFeatureFlags value)11374   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value  )
11375   {
11376 
11377     if ( !value ) return "{}";
11378     std::string result;
11379 
11380     if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | ";
11381     if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | ";
11382     if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | ";
11383     if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
11384     if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
11385     if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | ";
11386     if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
11387     if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | ";
11388     if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | ";
11389     if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
11390     if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | ";
11391     if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | ";
11392     if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | ";
11393     if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | ";
11394     if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | ";
11395     if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | ";
11396     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | ";
11397     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
11398     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
11399     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
11400     if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | ";
11401     if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | ";
11402     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax ) result += "SampledImageFilterMinmax | ";
11403     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | ";
11404     if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) result += "AccelerationStructureVertexBufferKHR | ";
11405     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
11406     if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR ) result += "FragmentShadingRateAttachmentKHR | ";
11407     return "{ " + result.substr(0, result.size() - 3) + " }";
11408   }
11409 
11410 
11411   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
11412 
11413   template <> struct FlagTraits<FramebufferCreateFlagBits>
11414   {
11415     enum : VkFlags
11416     {
11417       allFlags = VkFlags(FramebufferCreateFlagBits::eImageless)
11418     };
11419   };
11420 
operator |(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)11421   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11422   {
11423     return FramebufferCreateFlags( bit0 ) | bit1;
11424   }
11425 
operator &(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)11426   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11427   {
11428     return FramebufferCreateFlags( bit0 ) & bit1;
11429   }
11430 
operator ^(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)11431   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11432   {
11433     return FramebufferCreateFlags( bit0 ) ^ bit1;
11434   }
11435 
operator ~(FramebufferCreateFlagBits bits)11436   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11437   {
11438     return ~( FramebufferCreateFlags( bits ) );
11439   }
11440 
to_string(FramebufferCreateFlags value)11441   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value  )
11442   {
11443 
11444     if ( !value ) return "{}";
11445     std::string result;
11446 
11447     if ( value & FramebufferCreateFlagBits::eImageless ) result += "Imageless | ";
11448     return "{ " + result.substr(0, result.size() - 3) + " }";
11449   }
11450 
11451 
11452   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
11453 
11454   template <> struct FlagTraits<GeometryFlagBitsKHR>
11455   {
11456     enum : VkFlags
11457     {
11458       allFlags = VkFlags(GeometryFlagBitsKHR::eOpaque) | VkFlags(GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation)
11459     };
11460   };
11461 
operator |(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)11462   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11463   {
11464     return GeometryFlagsKHR( bit0 ) | bit1;
11465   }
11466 
operator &(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)11467   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11468   {
11469     return GeometryFlagsKHR( bit0 ) & bit1;
11470   }
11471 
operator ^(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)11472   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11473   {
11474     return GeometryFlagsKHR( bit0 ) ^ bit1;
11475   }
11476 
operator ~(GeometryFlagBitsKHR bits)11477   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11478   {
11479     return ~( GeometryFlagsKHR( bits ) );
11480   }
11481 
11482   using GeometryFlagsNV = GeometryFlagsKHR;
11483 
to_string(GeometryFlagsKHR value)11484   VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value  )
11485   {
11486 
11487     if ( !value ) return "{}";
11488     std::string result;
11489 
11490     if ( value & GeometryFlagBitsKHR::eOpaque ) result += "Opaque | ";
11491     if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | ";
11492     return "{ " + result.substr(0, result.size() - 3) + " }";
11493   }
11494 
11495 
11496   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
11497 
11498   template <> struct FlagTraits<GeometryInstanceFlagBitsKHR>
11499   {
11500     enum : VkFlags
11501     {
11502       allFlags = VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable) | VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise) | VkFlags(GeometryInstanceFlagBitsKHR::eForceOpaque) | VkFlags(GeometryInstanceFlagBitsKHR::eForceNoOpaque)
11503     };
11504   };
11505 
operator |(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)11506   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11507   {
11508     return GeometryInstanceFlagsKHR( bit0 ) | bit1;
11509   }
11510 
operator &(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)11511   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator&( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11512   {
11513     return GeometryInstanceFlagsKHR( bit0 ) & bit1;
11514   }
11515 
operator ^(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)11516   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11517   {
11518     return GeometryInstanceFlagsKHR( bit0 ) ^ bit1;
11519   }
11520 
operator ~(GeometryInstanceFlagBitsKHR bits)11521   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11522   {
11523     return ~( GeometryInstanceFlagsKHR( bits ) );
11524   }
11525 
11526   using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
11527 
to_string(GeometryInstanceFlagsKHR value)11528   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value  )
11529   {
11530 
11531     if ( !value ) return "{}";
11532     std::string result;
11533 
11534     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) result += "TriangleFacingCullDisable | ";
11535     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | ";
11536     if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque ) result += "ForceOpaque | ";
11537     if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque ) result += "ForceNoOpaque | ";
11538     return "{ " + result.substr(0, result.size() - 3) + " }";
11539   }
11540 
11541   enum class HeadlessSurfaceCreateFlagBitsEXT : VkFlags
11542   {};
11543 
to_string(HeadlessSurfaceCreateFlagBitsEXT)11544   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
11545   {
11546     return "(void)";
11547   }
11548 
11549   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
11550 
to_string(HeadlessSurfaceCreateFlagsEXT)11551   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT  )
11552   {
11553 
11554     return "{}";
11555   }
11556 
11557 #ifdef VK_USE_PLATFORM_IOS_MVK
11558   enum class IOSSurfaceCreateFlagBitsMVK : VkFlags
11559   {};
11560 
to_string(IOSSurfaceCreateFlagBitsMVK)11561   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
11562   {
11563     return "(void)";
11564   }
11565 
11566   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
11567 
to_string(IOSSurfaceCreateFlagsMVK)11568   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK  )
11569   {
11570 
11571     return "{}";
11572   }
11573 #endif /*VK_USE_PLATFORM_IOS_MVK*/
11574 
11575 
11576   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
11577 
11578   template <> struct FlagTraits<ImageAspectFlagBits>
11579   {
11580     enum : VkFlags
11581     {
11582       allFlags = VkFlags(ImageAspectFlagBits::eColor) | VkFlags(ImageAspectFlagBits::eDepth) | VkFlags(ImageAspectFlagBits::eStencil) | VkFlags(ImageAspectFlagBits::eMetadata) | VkFlags(ImageAspectFlagBits::ePlane0) | VkFlags(ImageAspectFlagBits::ePlane1) | VkFlags(ImageAspectFlagBits::ePlane2) | VkFlags(ImageAspectFlagBits::eMemoryPlane0EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane1EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane2EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane3EXT)
11583     };
11584   };
11585 
operator |(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)11586   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11587   {
11588     return ImageAspectFlags( bit0 ) | bit1;
11589   }
11590 
operator &(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)11591   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11592   {
11593     return ImageAspectFlags( bit0 ) & bit1;
11594   }
11595 
operator ^(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)11596   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11597   {
11598     return ImageAspectFlags( bit0 ) ^ bit1;
11599   }
11600 
operator ~(ImageAspectFlagBits bits)11601   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT
11602   {
11603     return ~( ImageAspectFlags( bits ) );
11604   }
11605 
to_string(ImageAspectFlags value)11606   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value  )
11607   {
11608 
11609     if ( !value ) return "{}";
11610     std::string result;
11611 
11612     if ( value & ImageAspectFlagBits::eColor ) result += "Color | ";
11613     if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | ";
11614     if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | ";
11615     if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | ";
11616     if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | ";
11617     if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | ";
11618     if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | ";
11619     if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | ";
11620     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | ";
11621     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | ";
11622     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | ";
11623     return "{ " + result.substr(0, result.size() - 3) + " }";
11624   }
11625 
11626 
11627   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
11628 
11629   template <> struct FlagTraits<ImageCreateFlagBits>
11630   {
11631     enum : VkFlags
11632     {
11633       allFlags = VkFlags(ImageCreateFlagBits::eSparseBinding) | VkFlags(ImageCreateFlagBits::eSparseResidency) | VkFlags(ImageCreateFlagBits::eSparseAliased) | VkFlags(ImageCreateFlagBits::eMutableFormat) | VkFlags(ImageCreateFlagBits::eCubeCompatible) | VkFlags(ImageCreateFlagBits::eAlias) | VkFlags(ImageCreateFlagBits::eSplitInstanceBindRegions) | VkFlags(ImageCreateFlagBits::e2DArrayCompatible) | VkFlags(ImageCreateFlagBits::eBlockTexelViewCompatible) | VkFlags(ImageCreateFlagBits::eExtendedUsage) | VkFlags(ImageCreateFlagBits::eProtected) | VkFlags(ImageCreateFlagBits::eDisjoint) | VkFlags(ImageCreateFlagBits::eCornerSampledNV) | VkFlags(ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT) | VkFlags(ImageCreateFlagBits::eSubsampledEXT)
11634     };
11635   };
11636 
operator |(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)11637   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11638   {
11639     return ImageCreateFlags( bit0 ) | bit1;
11640   }
11641 
operator &(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)11642   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11643   {
11644     return ImageCreateFlags( bit0 ) & bit1;
11645   }
11646 
operator ^(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)11647   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11648   {
11649     return ImageCreateFlags( bit0 ) ^ bit1;
11650   }
11651 
operator ~(ImageCreateFlagBits bits)11652   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11653   {
11654     return ~( ImageCreateFlags( bits ) );
11655   }
11656 
to_string(ImageCreateFlags value)11657   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value  )
11658   {
11659 
11660     if ( !value ) return "{}";
11661     std::string result;
11662 
11663     if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
11664     if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
11665     if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
11666     if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | ";
11667     if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | ";
11668     if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | ";
11669     if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
11670     if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | ";
11671     if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | ";
11672     if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | ";
11673     if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | ";
11674     if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | ";
11675     if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | ";
11676     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | ";
11677     if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
11678     return "{ " + result.substr(0, result.size() - 3) + " }";
11679   }
11680 
11681 #ifdef VK_USE_PLATFORM_FUCHSIA
11682   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkFlags
11683   {};
11684 
to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA)11685   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
11686   {
11687     return "(void)";
11688   }
11689 
11690   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
11691 
to_string(ImagePipeSurfaceCreateFlagsFUCHSIA)11692   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA  )
11693   {
11694 
11695     return "{}";
11696   }
11697 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11698 
11699 
11700   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
11701 
11702   template <> struct FlagTraits<ImageUsageFlagBits>
11703   {
11704     enum : VkFlags
11705     {
11706       allFlags = VkFlags(ImageUsageFlagBits::eTransferSrc) | VkFlags(ImageUsageFlagBits::eTransferDst) | VkFlags(ImageUsageFlagBits::eSampled) | VkFlags(ImageUsageFlagBits::eStorage) | VkFlags(ImageUsageFlagBits::eColorAttachment) | VkFlags(ImageUsageFlagBits::eDepthStencilAttachment) | VkFlags(ImageUsageFlagBits::eTransientAttachment) | VkFlags(ImageUsageFlagBits::eInputAttachment) | VkFlags(ImageUsageFlagBits::eShadingRateImageNV) | VkFlags(ImageUsageFlagBits::eFragmentDensityMapEXT)
11707     };
11708   };
11709 
operator |(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11710   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11711   {
11712     return ImageUsageFlags( bit0 ) | bit1;
11713   }
11714 
operator &(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11715   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11716   {
11717     return ImageUsageFlags( bit0 ) & bit1;
11718   }
11719 
operator ^(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)11720   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11721   {
11722     return ImageUsageFlags( bit0 ) ^ bit1;
11723   }
11724 
operator ~(ImageUsageFlagBits bits)11725   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
11726   {
11727     return ~( ImageUsageFlags( bits ) );
11728   }
11729 
to_string(ImageUsageFlags value)11730   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value  )
11731   {
11732 
11733     if ( !value ) return "{}";
11734     std::string result;
11735 
11736     if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
11737     if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | ";
11738     if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | ";
11739     if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | ";
11740     if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | ";
11741     if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
11742     if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | ";
11743     if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | ";
11744     if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
11745     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
11746     return "{ " + result.substr(0, result.size() - 3) + " }";
11747   }
11748 
11749 
11750   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
11751 
11752   template <> struct FlagTraits<ImageViewCreateFlagBits>
11753   {
11754     enum : VkFlags
11755     {
11756       allFlags = VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT) | VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT)
11757     };
11758   };
11759 
operator |(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11760   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11761   {
11762     return ImageViewCreateFlags( bit0 ) | bit1;
11763   }
11764 
operator &(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11765   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11766   {
11767     return ImageViewCreateFlags( bit0 ) & bit1;
11768   }
11769 
operator ^(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)11770   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11771   {
11772     return ImageViewCreateFlags( bit0 ) ^ bit1;
11773   }
11774 
operator ~(ImageViewCreateFlagBits bits)11775   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11776   {
11777     return ~( ImageViewCreateFlags( bits ) );
11778   }
11779 
to_string(ImageViewCreateFlags value)11780   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value  )
11781   {
11782 
11783     if ( !value ) return "{}";
11784     std::string result;
11785 
11786     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | ";
11787     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT ) result += "FragmentDensityMapDeferredEXT | ";
11788     return "{ " + result.substr(0, result.size() - 3) + " }";
11789   }
11790 
11791 
11792   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
11793 
11794   template <> struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
11795   {
11796     enum : VkFlags
11797     {
11798       allFlags = VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences)
11799     };
11800   };
11801 
operator |(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11802   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11803   {
11804     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1;
11805   }
11806 
operator &(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11807   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator&( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11808   {
11809     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1;
11810   }
11811 
operator ^(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)11812   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11813   {
11814     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1;
11815   }
11816 
operator ~(IndirectCommandsLayoutUsageFlagBitsNV bits)11817   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11818   {
11819     return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) );
11820   }
11821 
to_string(IndirectCommandsLayoutUsageFlagsNV value)11822   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value  )
11823   {
11824 
11825     if ( !value ) return "{}";
11826     std::string result;
11827 
11828     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) result += "ExplicitPreprocess | ";
11829     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) result += "IndexedSequences | ";
11830     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) result += "UnorderedSequences | ";
11831     return "{ " + result.substr(0, result.size() - 3) + " }";
11832   }
11833 
11834 
11835   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
11836 
11837   template <> struct FlagTraits<IndirectStateFlagBitsNV>
11838   {
11839     enum : VkFlags
11840     {
11841       allFlags = VkFlags(IndirectStateFlagBitsNV::eFlagFrontface)
11842     };
11843   };
11844 
operator |(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11845   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11846   {
11847     return IndirectStateFlagsNV( bit0 ) | bit1;
11848   }
11849 
operator &(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11850   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator&( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11851   {
11852     return IndirectStateFlagsNV( bit0 ) & bit1;
11853   }
11854 
operator ^(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)11855   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
11856   {
11857     return IndirectStateFlagsNV( bit0 ) ^ bit1;
11858   }
11859 
operator ~(IndirectStateFlagBitsNV bits)11860   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
11861   {
11862     return ~( IndirectStateFlagsNV( bits ) );
11863   }
11864 
to_string(IndirectStateFlagsNV value)11865   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value  )
11866   {
11867 
11868     if ( !value ) return "{}";
11869     std::string result;
11870 
11871     if ( value & IndirectStateFlagBitsNV::eFlagFrontface ) result += "FlagFrontface | ";
11872     return "{ " + result.substr(0, result.size() - 3) + " }";
11873   }
11874 
11875 
11876   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
11877 
to_string(InstanceCreateFlags)11878   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags  )
11879   {
11880 
11881     return "{}";
11882   }
11883 
11884 #ifdef VK_USE_PLATFORM_MACOS_MVK
11885   enum class MacOSSurfaceCreateFlagBitsMVK : VkFlags
11886   {};
11887 
to_string(MacOSSurfaceCreateFlagBitsMVK)11888   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
11889   {
11890     return "(void)";
11891   }
11892 
11893   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
11894 
to_string(MacOSSurfaceCreateFlagsMVK)11895   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK  )
11896   {
11897 
11898     return "{}";
11899   }
11900 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
11901 
11902 
11903   using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits>;
11904 
11905   template <> struct FlagTraits<MemoryAllocateFlagBits>
11906   {
11907     enum : VkFlags
11908     {
11909       allFlags = VkFlags(MemoryAllocateFlagBits::eDeviceMask) | VkFlags(MemoryAllocateFlagBits::eDeviceAddress) | VkFlags(MemoryAllocateFlagBits::eDeviceAddressCaptureReplay)
11910     };
11911   };
11912 
operator |(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11913   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11914   {
11915     return MemoryAllocateFlags( bit0 ) | bit1;
11916   }
11917 
operator &(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11918   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11919   {
11920     return MemoryAllocateFlags( bit0 ) & bit1;
11921   }
11922 
operator ^(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11923   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11924   {
11925     return MemoryAllocateFlags( bit0 ) ^ bit1;
11926   }
11927 
operator ~(MemoryAllocateFlagBits bits)11928   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits ) VULKAN_HPP_NOEXCEPT
11929   {
11930     return ~( MemoryAllocateFlags( bits ) );
11931   }
11932 
11933   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
11934 
to_string(MemoryAllocateFlags value)11935   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value  )
11936   {
11937 
11938     if ( !value ) return "{}";
11939     std::string result;
11940 
11941     if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | ";
11942     if ( value & MemoryAllocateFlagBits::eDeviceAddress ) result += "DeviceAddress | ";
11943     if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | ";
11944     return "{ " + result.substr(0, result.size() - 3) + " }";
11945   }
11946 
11947 
11948   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
11949 
11950   template <> struct FlagTraits<MemoryHeapFlagBits>
11951   {
11952     enum : VkFlags
11953     {
11954       allFlags = VkFlags(MemoryHeapFlagBits::eDeviceLocal) | VkFlags(MemoryHeapFlagBits::eMultiInstance)
11955     };
11956   };
11957 
operator |(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11958   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11959   {
11960     return MemoryHeapFlags( bit0 ) | bit1;
11961   }
11962 
operator &(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11963   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11964   {
11965     return MemoryHeapFlags( bit0 ) & bit1;
11966   }
11967 
operator ^(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)11968   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11969   {
11970     return MemoryHeapFlags( bit0 ) ^ bit1;
11971   }
11972 
operator ~(MemoryHeapFlagBits bits)11973   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT
11974   {
11975     return ~( MemoryHeapFlags( bits ) );
11976   }
11977 
to_string(MemoryHeapFlags value)11978   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value  )
11979   {
11980 
11981     if ( !value ) return "{}";
11982     std::string result;
11983 
11984     if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
11985     if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | ";
11986     return "{ " + result.substr(0, result.size() - 3) + " }";
11987   }
11988 
11989   enum class MemoryMapFlagBits : VkFlags
11990   {};
11991 
to_string(MemoryMapFlagBits)11992   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
11993   {
11994     return "(void)";
11995   }
11996 
11997   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
11998 
to_string(MemoryMapFlags)11999   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags  )
12000   {
12001 
12002     return "{}";
12003   }
12004 
12005 
12006   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
12007 
12008   template <> struct FlagTraits<MemoryPropertyFlagBits>
12009   {
12010     enum : VkFlags
12011     {
12012       allFlags = VkFlags(MemoryPropertyFlagBits::eDeviceLocal) | VkFlags(MemoryPropertyFlagBits::eHostVisible) | VkFlags(MemoryPropertyFlagBits::eHostCoherent) | VkFlags(MemoryPropertyFlagBits::eHostCached) | VkFlags(MemoryPropertyFlagBits::eLazilyAllocated) | VkFlags(MemoryPropertyFlagBits::eProtected) | VkFlags(MemoryPropertyFlagBits::eDeviceCoherentAMD) | VkFlags(MemoryPropertyFlagBits::eDeviceUncachedAMD)
12013     };
12014   };
12015 
operator |(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)12016   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12017   {
12018     return MemoryPropertyFlags( bit0 ) | bit1;
12019   }
12020 
operator &(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)12021   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12022   {
12023     return MemoryPropertyFlags( bit0 ) & bit1;
12024   }
12025 
operator ^(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)12026   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12027   {
12028     return MemoryPropertyFlags( bit0 ) ^ bit1;
12029   }
12030 
operator ~(MemoryPropertyFlagBits bits)12031   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits ) VULKAN_HPP_NOEXCEPT
12032   {
12033     return ~( MemoryPropertyFlags( bits ) );
12034   }
12035 
to_string(MemoryPropertyFlags value)12036   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value  )
12037   {
12038 
12039     if ( !value ) return "{}";
12040     std::string result;
12041 
12042     if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
12043     if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | ";
12044     if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | ";
12045     if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | ";
12046     if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | ";
12047     if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | ";
12048     if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) result += "DeviceCoherentAMD | ";
12049     if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) result += "DeviceUncachedAMD | ";
12050     return "{ " + result.substr(0, result.size() - 3) + " }";
12051   }
12052 
12053 #ifdef VK_USE_PLATFORM_METAL_EXT
12054   enum class MetalSurfaceCreateFlagBitsEXT : VkFlags
12055   {};
12056 
to_string(MetalSurfaceCreateFlagBitsEXT)12057   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
12058   {
12059     return "(void)";
12060   }
12061 
12062   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
12063 
to_string(MetalSurfaceCreateFlagsEXT)12064   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT  )
12065   {
12066 
12067     return "{}";
12068   }
12069 #endif /*VK_USE_PLATFORM_METAL_EXT*/
12070 
12071 
12072   using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits>;
12073 
12074   template <> struct FlagTraits<PeerMemoryFeatureFlagBits>
12075   {
12076     enum : VkFlags
12077     {
12078       allFlags = VkFlags(PeerMemoryFeatureFlagBits::eCopySrc) | VkFlags(PeerMemoryFeatureFlagBits::eCopyDst) | VkFlags(PeerMemoryFeatureFlagBits::eGenericSrc) | VkFlags(PeerMemoryFeatureFlagBits::eGenericDst)
12079     };
12080   };
12081 
operator |(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)12082   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12083   {
12084     return PeerMemoryFeatureFlags( bit0 ) | bit1;
12085   }
12086 
operator &(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)12087   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12088   {
12089     return PeerMemoryFeatureFlags( bit0 ) & bit1;
12090   }
12091 
operator ^(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)12092   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12093   {
12094     return PeerMemoryFeatureFlags( bit0 ) ^ bit1;
12095   }
12096 
operator ~(PeerMemoryFeatureFlagBits bits)12097   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
12098   {
12099     return ~( PeerMemoryFeatureFlags( bits ) );
12100   }
12101 
12102   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
12103 
to_string(PeerMemoryFeatureFlags value)12104   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value  )
12105   {
12106 
12107     if ( !value ) return "{}";
12108     std::string result;
12109 
12110     if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | ";
12111     if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | ";
12112     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | ";
12113     if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | ";
12114     return "{ " + result.substr(0, result.size() - 3) + " }";
12115   }
12116 
12117 
12118   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
12119 
12120   template <> struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
12121   {
12122     enum : VkFlags
12123     {
12124       allFlags = VkFlags(PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting) | VkFlags(PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted)
12125     };
12126   };
12127 
operator |(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)12128   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12129   {
12130     return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1;
12131   }
12132 
operator &(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)12133   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12134   {
12135     return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1;
12136   }
12137 
operator ^(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)12138   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12139   {
12140     return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1;
12141   }
12142 
operator ~(PerformanceCounterDescriptionFlagBitsKHR bits)12143   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12144   {
12145     return ~( PerformanceCounterDescriptionFlagsKHR( bits ) );
12146   }
12147 
to_string(PerformanceCounterDescriptionFlagsKHR value)12148   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value  )
12149   {
12150 
12151     if ( !value ) return "{}";
12152     std::string result;
12153 
12154     if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) result += "PerformanceImpacting | ";
12155     if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) result += "ConcurrentlyImpacted | ";
12156     return "{ " + result.substr(0, result.size() - 3) + " }";
12157   }
12158 
12159 
12160   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
12161 
12162   template <> struct FlagTraits<PipelineCacheCreateFlagBits>
12163   {
12164     enum : VkFlags
12165     {
12166       allFlags = VkFlags(PipelineCacheCreateFlagBits::eExternallySynchronizedEXT)
12167     };
12168   };
12169 
operator |(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)12170   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12171   {
12172     return PipelineCacheCreateFlags( bit0 ) | bit1;
12173   }
12174 
operator &(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)12175   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator&( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12176   {
12177     return PipelineCacheCreateFlags( bit0 ) & bit1;
12178   }
12179 
operator ^(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)12180   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12181   {
12182     return PipelineCacheCreateFlags( bit0 ) ^ bit1;
12183   }
12184 
operator ~(PipelineCacheCreateFlagBits bits)12185   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12186   {
12187     return ~( PipelineCacheCreateFlags( bits ) );
12188   }
12189 
to_string(PipelineCacheCreateFlags value)12190   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value  )
12191   {
12192 
12193     if ( !value ) return "{}";
12194     std::string result;
12195 
12196     if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) result += "ExternallySynchronizedEXT | ";
12197     return "{ " + result.substr(0, result.size() - 3) + " }";
12198   }
12199 
12200   enum class PipelineColorBlendStateCreateFlagBits : VkFlags
12201   {};
12202 
to_string(PipelineColorBlendStateCreateFlagBits)12203   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
12204   {
12205     return "(void)";
12206   }
12207 
12208   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
12209 
to_string(PipelineColorBlendStateCreateFlags)12210   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags  )
12211   {
12212 
12213     return "{}";
12214   }
12215 
12216 
12217   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
12218 
to_string(PipelineCompilerControlFlagsAMD)12219   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD  )
12220   {
12221 
12222     return "{}";
12223   }
12224 
12225   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkFlags
12226   {};
12227 
to_string(PipelineCoverageModulationStateCreateFlagBitsNV)12228   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
12229   {
12230     return "(void)";
12231   }
12232 
12233   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
12234 
to_string(PipelineCoverageModulationStateCreateFlagsNV)12235   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV  )
12236   {
12237 
12238     return "{}";
12239   }
12240 
12241   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkFlags
12242   {};
12243 
to_string(PipelineCoverageReductionStateCreateFlagBitsNV)12244   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
12245   {
12246     return "(void)";
12247   }
12248 
12249   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
12250 
to_string(PipelineCoverageReductionStateCreateFlagsNV)12251   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV  )
12252   {
12253 
12254     return "{}";
12255   }
12256 
12257   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkFlags
12258   {};
12259 
to_string(PipelineCoverageToColorStateCreateFlagBitsNV)12260   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
12261   {
12262     return "(void)";
12263   }
12264 
12265   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
12266 
to_string(PipelineCoverageToColorStateCreateFlagsNV)12267   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV  )
12268   {
12269 
12270     return "{}";
12271   }
12272 
12273 
12274   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
12275 
12276   template <> struct FlagTraits<PipelineCreateFlagBits>
12277   {
12278     enum : VkFlags
12279     {
12280       allFlags = VkFlags(PipelineCreateFlagBits::eDisableOptimization) | VkFlags(PipelineCreateFlagBits::eAllowDerivatives) | VkFlags(PipelineCreateFlagBits::eDerivative) | VkFlags(PipelineCreateFlagBits::eViewIndexFromDeviceIndex) | VkFlags(PipelineCreateFlagBits::eDispatchBase) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingSkipAabbsKHR) | VkFlags(PipelineCreateFlagBits::eDeferCompileNV) | VkFlags(PipelineCreateFlagBits::eCaptureStatisticsKHR) | VkFlags(PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR) | VkFlags(PipelineCreateFlagBits::eIndirectBindableNV) | VkFlags(PipelineCreateFlagBits::eLibraryKHR) | VkFlags(PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT) | VkFlags(PipelineCreateFlagBits::eEarlyReturnOnFailureEXT)
12281     };
12282   };
12283 
operator |(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)12284   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12285   {
12286     return PipelineCreateFlags( bit0 ) | bit1;
12287   }
12288 
operator &(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)12289   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12290   {
12291     return PipelineCreateFlags( bit0 ) & bit1;
12292   }
12293 
operator ^(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)12294   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12295   {
12296     return PipelineCreateFlags( bit0 ) ^ bit1;
12297   }
12298 
operator ~(PipelineCreateFlagBits bits)12299   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12300   {
12301     return ~( PipelineCreateFlags( bits ) );
12302   }
12303 
to_string(PipelineCreateFlags value)12304   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value  )
12305   {
12306 
12307     if ( !value ) return "{}";
12308     std::string result;
12309 
12310     if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | ";
12311     if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | ";
12312     if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | ";
12313     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | ";
12314     if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | ";
12315     if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) result += "RayTracingNoNullAnyHitShadersKHR | ";
12316     if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) result += "RayTracingNoNullClosestHitShadersKHR | ";
12317     if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) result += "RayTracingNoNullMissShadersKHR | ";
12318     if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) result += "RayTracingNoNullIntersectionShadersKHR | ";
12319     if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) result += "RayTracingSkipTrianglesKHR | ";
12320     if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) result += "RayTracingSkipAabbsKHR | ";
12321     if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | ";
12322     if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) result += "CaptureStatisticsKHR | ";
12323     if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) result += "CaptureInternalRepresentationsKHR | ";
12324     if ( value & PipelineCreateFlagBits::eIndirectBindableNV ) result += "IndirectBindableNV | ";
12325     if ( value & PipelineCreateFlagBits::eLibraryKHR ) result += "LibraryKHR | ";
12326     if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) result += "FailOnPipelineCompileRequiredEXT | ";
12327     if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) result += "EarlyReturnOnFailureEXT | ";
12328     return "{ " + result.substr(0, result.size() - 3) + " }";
12329   }
12330 
12331 
12332   using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT>;
12333 
12334   template <> struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
12335   {
12336     enum : VkFlags
12337     {
12338       allFlags = VkFlags(PipelineCreationFeedbackFlagBitsEXT::eValid) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration)
12339     };
12340   };
12341 
operator |(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)12342   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12343   {
12344     return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
12345   }
12346 
operator &(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)12347   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12348   {
12349     return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1;
12350   }
12351 
operator ^(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)12352   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12353   {
12354     return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1;
12355   }
12356 
operator ~(PipelineCreationFeedbackFlagBitsEXT bits)12357   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12358   {
12359     return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
12360   }
12361 
to_string(PipelineCreationFeedbackFlagsEXT value)12362   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value  )
12363   {
12364 
12365     if ( !value ) return "{}";
12366     std::string result;
12367 
12368     if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | ";
12369     if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | ";
12370     if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | ";
12371     return "{ " + result.substr(0, result.size() - 3) + " }";
12372   }
12373 
12374   enum class PipelineDepthStencilStateCreateFlagBits : VkFlags
12375   {};
12376 
to_string(PipelineDepthStencilStateCreateFlagBits)12377   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
12378   {
12379     return "(void)";
12380   }
12381 
12382   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
12383 
to_string(PipelineDepthStencilStateCreateFlags)12384   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags  )
12385   {
12386 
12387     return "{}";
12388   }
12389 
12390   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkFlags
12391   {};
12392 
to_string(PipelineDiscardRectangleStateCreateFlagBitsEXT)12393   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
12394   {
12395     return "(void)";
12396   }
12397 
12398   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
12399 
to_string(PipelineDiscardRectangleStateCreateFlagsEXT)12400   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT  )
12401   {
12402 
12403     return "{}";
12404   }
12405 
12406   enum class PipelineDynamicStateCreateFlagBits : VkFlags
12407   {};
12408 
to_string(PipelineDynamicStateCreateFlagBits)12409   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
12410   {
12411     return "(void)";
12412   }
12413 
12414   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
12415 
to_string(PipelineDynamicStateCreateFlags)12416   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags  )
12417   {
12418 
12419     return "{}";
12420   }
12421 
12422   enum class PipelineInputAssemblyStateCreateFlagBits : VkFlags
12423   {};
12424 
to_string(PipelineInputAssemblyStateCreateFlagBits)12425   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
12426   {
12427     return "(void)";
12428   }
12429 
12430   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
12431 
to_string(PipelineInputAssemblyStateCreateFlags)12432   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags  )
12433   {
12434 
12435     return "{}";
12436   }
12437 
12438   enum class PipelineLayoutCreateFlagBits : VkFlags
12439   {};
12440 
to_string(PipelineLayoutCreateFlagBits)12441   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
12442   {
12443     return "(void)";
12444   }
12445 
12446   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
12447 
to_string(PipelineLayoutCreateFlags)12448   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags  )
12449   {
12450 
12451     return "{}";
12452   }
12453 
12454   enum class PipelineMultisampleStateCreateFlagBits : VkFlags
12455   {};
12456 
to_string(PipelineMultisampleStateCreateFlagBits)12457   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
12458   {
12459     return "(void)";
12460   }
12461 
12462   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
12463 
to_string(PipelineMultisampleStateCreateFlags)12464   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags  )
12465   {
12466 
12467     return "{}";
12468   }
12469 
12470   enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkFlags
12471   {};
12472 
to_string(PipelineRasterizationConservativeStateCreateFlagBitsEXT)12473   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
12474   {
12475     return "(void)";
12476   }
12477 
12478   using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
12479 
to_string(PipelineRasterizationConservativeStateCreateFlagsEXT)12480   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT  )
12481   {
12482 
12483     return "{}";
12484   }
12485 
12486   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkFlags
12487   {};
12488 
to_string(PipelineRasterizationDepthClipStateCreateFlagBitsEXT)12489   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
12490   {
12491     return "(void)";
12492   }
12493 
12494   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
12495 
to_string(PipelineRasterizationDepthClipStateCreateFlagsEXT)12496   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT  )
12497   {
12498 
12499     return "{}";
12500   }
12501 
12502   enum class PipelineRasterizationStateCreateFlagBits : VkFlags
12503   {};
12504 
to_string(PipelineRasterizationStateCreateFlagBits)12505   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
12506   {
12507     return "(void)";
12508   }
12509 
12510   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
12511 
to_string(PipelineRasterizationStateCreateFlags)12512   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags  )
12513   {
12514 
12515     return "{}";
12516   }
12517 
12518   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkFlags
12519   {};
12520 
to_string(PipelineRasterizationStateStreamCreateFlagBitsEXT)12521   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
12522   {
12523     return "(void)";
12524   }
12525 
12526   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
12527 
to_string(PipelineRasterizationStateStreamCreateFlagsEXT)12528   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT  )
12529   {
12530 
12531     return "{}";
12532   }
12533 
12534 
12535   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
12536 
12537   template <> struct FlagTraits<PipelineShaderStageCreateFlagBits>
12538   {
12539     enum : VkFlags
12540     {
12541       allFlags = VkFlags(PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT) | VkFlags(PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT)
12542     };
12543   };
12544 
operator |(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)12545   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12546   {
12547     return PipelineShaderStageCreateFlags( bit0 ) | bit1;
12548   }
12549 
operator &(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)12550   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12551   {
12552     return PipelineShaderStageCreateFlags( bit0 ) & bit1;
12553   }
12554 
operator ^(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)12555   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12556   {
12557     return PipelineShaderStageCreateFlags( bit0 ) ^ bit1;
12558   }
12559 
operator ~(PipelineShaderStageCreateFlagBits bits)12560   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12561   {
12562     return ~( PipelineShaderStageCreateFlags( bits ) );
12563   }
12564 
to_string(PipelineShaderStageCreateFlags value)12565   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value  )
12566   {
12567 
12568     if ( !value ) return "{}";
12569     std::string result;
12570 
12571     if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) result += "AllowVaryingSubgroupSizeEXT | ";
12572     if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) result += "RequireFullSubgroupsEXT | ";
12573     return "{ " + result.substr(0, result.size() - 3) + " }";
12574   }
12575 
12576 
12577   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
12578 
12579   template <> struct FlagTraits<PipelineStageFlagBits>
12580   {
12581     enum : VkFlags
12582     {
12583       allFlags = VkFlags(PipelineStageFlagBits::eTopOfPipe) | VkFlags(PipelineStageFlagBits::eDrawIndirect) | VkFlags(PipelineStageFlagBits::eVertexInput) | VkFlags(PipelineStageFlagBits::eVertexShader) | VkFlags(PipelineStageFlagBits::eTessellationControlShader) | VkFlags(PipelineStageFlagBits::eTessellationEvaluationShader) | VkFlags(PipelineStageFlagBits::eGeometryShader) | VkFlags(PipelineStageFlagBits::eFragmentShader) | VkFlags(PipelineStageFlagBits::eEarlyFragmentTests) | VkFlags(PipelineStageFlagBits::eLateFragmentTests) | VkFlags(PipelineStageFlagBits::eColorAttachmentOutput) | VkFlags(PipelineStageFlagBits::eComputeShader) | VkFlags(PipelineStageFlagBits::eTransfer) | VkFlags(PipelineStageFlagBits::eBottomOfPipe) | VkFlags(PipelineStageFlagBits::eHost) | VkFlags(PipelineStageFlagBits::eAllGraphics) | VkFlags(PipelineStageFlagBits::eAllCommands) | VkFlags(PipelineStageFlagBits::eTransformFeedbackEXT) | VkFlags(PipelineStageFlagBits::eConditionalRenderingEXT) | VkFlags(PipelineStageFlagBits::eRayTracingShaderKHR) | VkFlags(PipelineStageFlagBits::eAccelerationStructureBuildKHR) | VkFlags(PipelineStageFlagBits::eShadingRateImageNV) | VkFlags(PipelineStageFlagBits::eTaskShaderNV) | VkFlags(PipelineStageFlagBits::eMeshShaderNV) | VkFlags(PipelineStageFlagBits::eFragmentDensityProcessEXT) | VkFlags(PipelineStageFlagBits::eCommandPreprocessNV)
12584     };
12585   };
12586 
operator |(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)12587   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12588   {
12589     return PipelineStageFlags( bit0 ) | bit1;
12590   }
12591 
operator &(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)12592   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12593   {
12594     return PipelineStageFlags( bit0 ) & bit1;
12595   }
12596 
operator ^(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)12597   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12598   {
12599     return PipelineStageFlags( bit0 ) ^ bit1;
12600   }
12601 
operator ~(PipelineStageFlagBits bits)12602   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
12603   {
12604     return ~( PipelineStageFlags( bits ) );
12605   }
12606 
to_string(PipelineStageFlags value)12607   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value  )
12608   {
12609 
12610     if ( !value ) return "{}";
12611     std::string result;
12612 
12613     if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | ";
12614     if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | ";
12615     if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | ";
12616     if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | ";
12617     if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | ";
12618     if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | ";
12619     if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | ";
12620     if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | ";
12621     if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | ";
12622     if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | ";
12623     if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | ";
12624     if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | ";
12625     if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | ";
12626     if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | ";
12627     if ( value & PipelineStageFlagBits::eHost ) result += "Host | ";
12628     if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | ";
12629     if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | ";
12630     if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | ";
12631     if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
12632     if ( value & PipelineStageFlagBits::eRayTracingShaderKHR ) result += "RayTracingShaderKHR | ";
12633     if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR ) result += "AccelerationStructureBuildKHR | ";
12634     if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
12635     if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | ";
12636     if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | ";
12637     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | ";
12638     if ( value & PipelineStageFlagBits::eCommandPreprocessNV ) result += "CommandPreprocessNV | ";
12639     return "{ " + result.substr(0, result.size() - 3) + " }";
12640   }
12641 
12642   enum class PipelineTessellationStateCreateFlagBits : VkFlags
12643   {};
12644 
to_string(PipelineTessellationStateCreateFlagBits)12645   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
12646   {
12647     return "(void)";
12648   }
12649 
12650   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
12651 
to_string(PipelineTessellationStateCreateFlags)12652   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags  )
12653   {
12654 
12655     return "{}";
12656   }
12657 
12658   enum class PipelineVertexInputStateCreateFlagBits : VkFlags
12659   {};
12660 
to_string(PipelineVertexInputStateCreateFlagBits)12661   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
12662   {
12663     return "(void)";
12664   }
12665 
12666   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
12667 
to_string(PipelineVertexInputStateCreateFlags)12668   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags  )
12669   {
12670 
12671     return "{}";
12672   }
12673 
12674   enum class PipelineViewportStateCreateFlagBits : VkFlags
12675   {};
12676 
to_string(PipelineViewportStateCreateFlagBits)12677   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
12678   {
12679     return "(void)";
12680   }
12681 
12682   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
12683 
to_string(PipelineViewportStateCreateFlags)12684   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags  )
12685   {
12686 
12687     return "{}";
12688   }
12689 
12690   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkFlags
12691   {};
12692 
to_string(PipelineViewportSwizzleStateCreateFlagBitsNV)12693   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
12694   {
12695     return "(void)";
12696   }
12697 
12698   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
12699 
to_string(PipelineViewportSwizzleStateCreateFlagsNV)12700   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV  )
12701   {
12702 
12703     return "{}";
12704   }
12705 
12706 
12707   using PrivateDataSlotCreateFlagsEXT = Flags<PrivateDataSlotCreateFlagBitsEXT>;
12708 
to_string(PrivateDataSlotCreateFlagsEXT)12709   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT  )
12710   {
12711 
12712     return "{}";
12713   }
12714 
12715 
12716   using QueryControlFlags = Flags<QueryControlFlagBits>;
12717 
12718   template <> struct FlagTraits<QueryControlFlagBits>
12719   {
12720     enum : VkFlags
12721     {
12722       allFlags = VkFlags(QueryControlFlagBits::ePrecise)
12723     };
12724   };
12725 
operator |(QueryControlFlagBits bit0,QueryControlFlagBits bit1)12726   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12727   {
12728     return QueryControlFlags( bit0 ) | bit1;
12729   }
12730 
operator &(QueryControlFlagBits bit0,QueryControlFlagBits bit1)12731   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12732   {
12733     return QueryControlFlags( bit0 ) & bit1;
12734   }
12735 
operator ^(QueryControlFlagBits bit0,QueryControlFlagBits bit1)12736   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12737   {
12738     return QueryControlFlags( bit0 ) ^ bit1;
12739   }
12740 
operator ~(QueryControlFlagBits bits)12741   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT
12742   {
12743     return ~( QueryControlFlags( bits ) );
12744   }
12745 
to_string(QueryControlFlags value)12746   VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value  )
12747   {
12748 
12749     if ( !value ) return "{}";
12750     std::string result;
12751 
12752     if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | ";
12753     return "{ " + result.substr(0, result.size() - 3) + " }";
12754   }
12755 
12756 
12757   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
12758 
12759   template <> struct FlagTraits<QueryPipelineStatisticFlagBits>
12760   {
12761     enum : VkFlags
12762     {
12763       allFlags = VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyVertices) | VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eVertexShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eClippingInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eClippingPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eFragmentShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eComputeShaderInvocations)
12764     };
12765   };
12766 
operator |(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12767   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12768   {
12769     return QueryPipelineStatisticFlags( bit0 ) | bit1;
12770   }
12771 
operator &(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12772   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12773   {
12774     return QueryPipelineStatisticFlags( bit0 ) & bit1;
12775   }
12776 
operator ^(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)12777   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12778   {
12779     return QueryPipelineStatisticFlags( bit0 ) ^ bit1;
12780   }
12781 
operator ~(QueryPipelineStatisticFlagBits bits)12782   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits ) VULKAN_HPP_NOEXCEPT
12783   {
12784     return ~( QueryPipelineStatisticFlags( bits ) );
12785   }
12786 
to_string(QueryPipelineStatisticFlags value)12787   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value  )
12788   {
12789 
12790     if ( !value ) return "{}";
12791     std::string result;
12792 
12793     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | ";
12794     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | ";
12795     if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | ";
12796     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | ";
12797     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | ";
12798     if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | ";
12799     if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | ";
12800     if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | ";
12801     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | ";
12802     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | ";
12803     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | ";
12804     return "{ " + result.substr(0, result.size() - 3) + " }";
12805   }
12806 
12807 
12808   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
12809 
to_string(QueryPoolCreateFlags)12810   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags  )
12811   {
12812 
12813     return "{}";
12814   }
12815 
12816 
12817   using QueryResultFlags = Flags<QueryResultFlagBits>;
12818 
12819   template <> struct FlagTraits<QueryResultFlagBits>
12820   {
12821     enum : VkFlags
12822     {
12823       allFlags = VkFlags(QueryResultFlagBits::e64) | VkFlags(QueryResultFlagBits::eWait) | VkFlags(QueryResultFlagBits::eWithAvailability) | VkFlags(QueryResultFlagBits::ePartial)
12824     };
12825   };
12826 
operator |(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12827   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12828   {
12829     return QueryResultFlags( bit0 ) | bit1;
12830   }
12831 
operator &(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12832   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12833   {
12834     return QueryResultFlags( bit0 ) & bit1;
12835   }
12836 
operator ^(QueryResultFlagBits bit0,QueryResultFlagBits bit1)12837   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12838   {
12839     return QueryResultFlags( bit0 ) ^ bit1;
12840   }
12841 
operator ~(QueryResultFlagBits bits)12842   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT
12843   {
12844     return ~( QueryResultFlags( bits ) );
12845   }
12846 
to_string(QueryResultFlags value)12847   VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value  )
12848   {
12849 
12850     if ( !value ) return "{}";
12851     std::string result;
12852 
12853     if ( value & QueryResultFlagBits::e64 ) result += "64 | ";
12854     if ( value & QueryResultFlagBits::eWait ) result += "Wait | ";
12855     if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | ";
12856     if ( value & QueryResultFlagBits::ePartial ) result += "Partial | ";
12857     return "{ " + result.substr(0, result.size() - 3) + " }";
12858   }
12859 
12860 
12861   using QueueFlags = Flags<QueueFlagBits>;
12862 
12863   template <> struct FlagTraits<QueueFlagBits>
12864   {
12865     enum : VkFlags
12866     {
12867       allFlags = VkFlags(QueueFlagBits::eGraphics) | VkFlags(QueueFlagBits::eCompute) | VkFlags(QueueFlagBits::eTransfer) | VkFlags(QueueFlagBits::eSparseBinding) | VkFlags(QueueFlagBits::eProtected)
12868     };
12869   };
12870 
operator |(QueueFlagBits bit0,QueueFlagBits bit1)12871   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12872   {
12873     return QueueFlags( bit0 ) | bit1;
12874   }
12875 
operator &(QueueFlagBits bit0,QueueFlagBits bit1)12876   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12877   {
12878     return QueueFlags( bit0 ) & bit1;
12879   }
12880 
operator ^(QueueFlagBits bit0,QueueFlagBits bit1)12881   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12882   {
12883     return QueueFlags( bit0 ) ^ bit1;
12884   }
12885 
operator ~(QueueFlagBits bits)12886   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT
12887   {
12888     return ~( QueueFlags( bits ) );
12889   }
12890 
to_string(QueueFlags value)12891   VULKAN_HPP_INLINE std::string to_string( QueueFlags value  )
12892   {
12893 
12894     if ( !value ) return "{}";
12895     std::string result;
12896 
12897     if ( value & QueueFlagBits::eGraphics ) result += "Graphics | ";
12898     if ( value & QueueFlagBits::eCompute ) result += "Compute | ";
12899     if ( value & QueueFlagBits::eTransfer ) result += "Transfer | ";
12900     if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | ";
12901     if ( value & QueueFlagBits::eProtected ) result += "Protected | ";
12902     return "{ " + result.substr(0, result.size() - 3) + " }";
12903   }
12904 
12905 
12906   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
12907 
12908   template <> struct FlagTraits<RenderPassCreateFlagBits>
12909   {
12910     enum : VkFlags
12911     {
12912       allFlags = VkFlags(RenderPassCreateFlagBits::eTransformQCOM)
12913     };
12914   };
12915 
operator |(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12916   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12917   {
12918     return RenderPassCreateFlags( bit0 ) | bit1;
12919   }
12920 
operator &(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12921   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator&( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12922   {
12923     return RenderPassCreateFlags( bit0 ) & bit1;
12924   }
12925 
operator ^(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)12926   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12927   {
12928     return RenderPassCreateFlags( bit0 ) ^ bit1;
12929   }
12930 
operator ~(RenderPassCreateFlagBits bits)12931   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
12932   {
12933     return ~( RenderPassCreateFlags( bits ) );
12934   }
12935 
to_string(RenderPassCreateFlags value)12936   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value  )
12937   {
12938 
12939     if ( !value ) return "{}";
12940     std::string result;
12941 
12942     if ( value & RenderPassCreateFlagBits::eTransformQCOM ) result += "TransformQCOM | ";
12943     return "{ " + result.substr(0, result.size() - 3) + " }";
12944   }
12945 
12946 
12947   using ResolveModeFlags = Flags<ResolveModeFlagBits>;
12948 
12949   template <> struct FlagTraits<ResolveModeFlagBits>
12950   {
12951     enum : VkFlags
12952     {
12953       allFlags = VkFlags(ResolveModeFlagBits::eNone) | VkFlags(ResolveModeFlagBits::eSampleZero) | VkFlags(ResolveModeFlagBits::eAverage) | VkFlags(ResolveModeFlagBits::eMin) | VkFlags(ResolveModeFlagBits::eMax)
12954     };
12955   };
12956 
operator |(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12957   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12958   {
12959     return ResolveModeFlags( bit0 ) | bit1;
12960   }
12961 
operator &(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12962   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12963   {
12964     return ResolveModeFlags( bit0 ) & bit1;
12965   }
12966 
operator ^(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)12967   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
12968   {
12969     return ResolveModeFlags( bit0 ) ^ bit1;
12970   }
12971 
operator ~(ResolveModeFlagBits bits)12972   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
12973   {
12974     return ~( ResolveModeFlags( bits ) );
12975   }
12976 
12977   using ResolveModeFlagsKHR = ResolveModeFlags;
12978 
to_string(ResolveModeFlags value)12979   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value  )
12980   {
12981 
12982     if ( !value ) return "{}";
12983     std::string result;
12984 
12985     if ( value & ResolveModeFlagBits::eSampleZero ) result += "SampleZero | ";
12986     if ( value & ResolveModeFlagBits::eAverage ) result += "Average | ";
12987     if ( value & ResolveModeFlagBits::eMin ) result += "Min | ";
12988     if ( value & ResolveModeFlagBits::eMax ) result += "Max | ";
12989     return "{ " + result.substr(0, result.size() - 3) + " }";
12990   }
12991 
12992 
12993   using SampleCountFlags = Flags<SampleCountFlagBits>;
12994 
12995   template <> struct FlagTraits<SampleCountFlagBits>
12996   {
12997     enum : VkFlags
12998     {
12999       allFlags = VkFlags(SampleCountFlagBits::e1) | VkFlags(SampleCountFlagBits::e2) | VkFlags(SampleCountFlagBits::e4) | VkFlags(SampleCountFlagBits::e8) | VkFlags(SampleCountFlagBits::e16) | VkFlags(SampleCountFlagBits::e32) | VkFlags(SampleCountFlagBits::e64)
13000     };
13001   };
13002 
operator |(SampleCountFlagBits bit0,SampleCountFlagBits bit1)13003   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13004   {
13005     return SampleCountFlags( bit0 ) | bit1;
13006   }
13007 
operator &(SampleCountFlagBits bit0,SampleCountFlagBits bit1)13008   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13009   {
13010     return SampleCountFlags( bit0 ) & bit1;
13011   }
13012 
operator ^(SampleCountFlagBits bit0,SampleCountFlagBits bit1)13013   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13014   {
13015     return SampleCountFlags( bit0 ) ^ bit1;
13016   }
13017 
operator ~(SampleCountFlagBits bits)13018   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT
13019   {
13020     return ~( SampleCountFlags( bits ) );
13021   }
13022 
to_string(SampleCountFlags value)13023   VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value  )
13024   {
13025 
13026     if ( !value ) return "{}";
13027     std::string result;
13028 
13029     if ( value & SampleCountFlagBits::e1 ) result += "1 | ";
13030     if ( value & SampleCountFlagBits::e2 ) result += "2 | ";
13031     if ( value & SampleCountFlagBits::e4 ) result += "4 | ";
13032     if ( value & SampleCountFlagBits::e8 ) result += "8 | ";
13033     if ( value & SampleCountFlagBits::e16 ) result += "16 | ";
13034     if ( value & SampleCountFlagBits::e32 ) result += "32 | ";
13035     if ( value & SampleCountFlagBits::e64 ) result += "64 | ";
13036     return "{ " + result.substr(0, result.size() - 3) + " }";
13037   }
13038 
13039 
13040   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
13041 
13042   template <> struct FlagTraits<SamplerCreateFlagBits>
13043   {
13044     enum : VkFlags
13045     {
13046       allFlags = VkFlags(SamplerCreateFlagBits::eSubsampledEXT) | VkFlags(SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT)
13047     };
13048   };
13049 
operator |(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)13050   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13051   {
13052     return SamplerCreateFlags( bit0 ) | bit1;
13053   }
13054 
operator &(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)13055   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13056   {
13057     return SamplerCreateFlags( bit0 ) & bit1;
13058   }
13059 
operator ^(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)13060   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13061   {
13062     return SamplerCreateFlags( bit0 ) ^ bit1;
13063   }
13064 
operator ~(SamplerCreateFlagBits bits)13065   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
13066   {
13067     return ~( SamplerCreateFlags( bits ) );
13068   }
13069 
to_string(SamplerCreateFlags value)13070   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value  )
13071   {
13072 
13073     if ( !value ) return "{}";
13074     std::string result;
13075 
13076     if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
13077     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | ";
13078     return "{ " + result.substr(0, result.size() - 3) + " }";
13079   }
13080 
13081 
13082   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
13083 
to_string(SemaphoreCreateFlags)13084   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags  )
13085   {
13086 
13087     return "{}";
13088   }
13089 
13090 
13091   using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits>;
13092 
13093   template <> struct FlagTraits<SemaphoreImportFlagBits>
13094   {
13095     enum : VkFlags
13096     {
13097       allFlags = VkFlags(SemaphoreImportFlagBits::eTemporary)
13098     };
13099   };
13100 
operator |(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)13101   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13102   {
13103     return SemaphoreImportFlags( bit0 ) | bit1;
13104   }
13105 
operator &(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)13106   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13107   {
13108     return SemaphoreImportFlags( bit0 ) & bit1;
13109   }
13110 
operator ^(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)13111   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13112   {
13113     return SemaphoreImportFlags( bit0 ) ^ bit1;
13114   }
13115 
operator ~(SemaphoreImportFlagBits bits)13116   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
13117   {
13118     return ~( SemaphoreImportFlags( bits ) );
13119   }
13120 
13121   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
13122 
to_string(SemaphoreImportFlags value)13123   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value  )
13124   {
13125 
13126     if ( !value ) return "{}";
13127     std::string result;
13128 
13129     if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | ";
13130     return "{ " + result.substr(0, result.size() - 3) + " }";
13131   }
13132 
13133 
13134   using SemaphoreWaitFlags = Flags<SemaphoreWaitFlagBits>;
13135 
13136   template <> struct FlagTraits<SemaphoreWaitFlagBits>
13137   {
13138     enum : VkFlags
13139     {
13140       allFlags = VkFlags(SemaphoreWaitFlagBits::eAny)
13141     };
13142   };
13143 
operator |(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)13144   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13145   {
13146     return SemaphoreWaitFlags( bit0 ) | bit1;
13147   }
13148 
operator &(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)13149   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13150   {
13151     return SemaphoreWaitFlags( bit0 ) & bit1;
13152   }
13153 
operator ^(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)13154   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13155   {
13156     return SemaphoreWaitFlags( bit0 ) ^ bit1;
13157   }
13158 
operator ~(SemaphoreWaitFlagBits bits)13159   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT
13160   {
13161     return ~( SemaphoreWaitFlags( bits ) );
13162   }
13163 
13164   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
13165 
to_string(SemaphoreWaitFlags value)13166   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value  )
13167   {
13168 
13169     if ( !value ) return "{}";
13170     std::string result;
13171 
13172     if ( value & SemaphoreWaitFlagBits::eAny ) result += "Any | ";
13173     return "{ " + result.substr(0, result.size() - 3) + " }";
13174   }
13175 
13176 
13177   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
13178 
to_string(ShaderCorePropertiesFlagsAMD)13179   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD  )
13180   {
13181 
13182     return "{}";
13183   }
13184 
13185 
13186   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
13187 
to_string(ShaderModuleCreateFlags)13188   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags  )
13189   {
13190 
13191     return "{}";
13192   }
13193 
13194 
13195   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
13196 
13197   template <> struct FlagTraits<ShaderStageFlagBits>
13198   {
13199     enum : VkFlags
13200     {
13201       allFlags = VkFlags(ShaderStageFlagBits::eVertex) | VkFlags(ShaderStageFlagBits::eTessellationControl) | VkFlags(ShaderStageFlagBits::eTessellationEvaluation) | VkFlags(ShaderStageFlagBits::eGeometry) | VkFlags(ShaderStageFlagBits::eFragment) | VkFlags(ShaderStageFlagBits::eCompute) | VkFlags(ShaderStageFlagBits::eAllGraphics) | VkFlags(ShaderStageFlagBits::eAll) | VkFlags(ShaderStageFlagBits::eRaygenKHR) | VkFlags(ShaderStageFlagBits::eAnyHitKHR) | VkFlags(ShaderStageFlagBits::eClosestHitKHR) | VkFlags(ShaderStageFlagBits::eMissKHR) | VkFlags(ShaderStageFlagBits::eIntersectionKHR) | VkFlags(ShaderStageFlagBits::eCallableKHR) | VkFlags(ShaderStageFlagBits::eTaskNV) | VkFlags(ShaderStageFlagBits::eMeshNV)
13202     };
13203   };
13204 
operator |(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)13205   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13206   {
13207     return ShaderStageFlags( bit0 ) | bit1;
13208   }
13209 
operator &(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)13210   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13211   {
13212     return ShaderStageFlags( bit0 ) & bit1;
13213   }
13214 
operator ^(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)13215   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13216   {
13217     return ShaderStageFlags( bit0 ) ^ bit1;
13218   }
13219 
operator ~(ShaderStageFlagBits bits)13220   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
13221   {
13222     return ~( ShaderStageFlags( bits ) );
13223   }
13224 
to_string(ShaderStageFlags value)13225   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value  )
13226   {
13227 
13228     if ( !value ) return "{}";
13229     std::string result;
13230 
13231     if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | ";
13232     if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | ";
13233     if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | ";
13234     if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | ";
13235     if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | ";
13236     if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | ";
13237     if ( value & ShaderStageFlagBits::eRaygenKHR ) result += "RaygenKHR | ";
13238     if ( value & ShaderStageFlagBits::eAnyHitKHR ) result += "AnyHitKHR | ";
13239     if ( value & ShaderStageFlagBits::eClosestHitKHR ) result += "ClosestHitKHR | ";
13240     if ( value & ShaderStageFlagBits::eMissKHR ) result += "MissKHR | ";
13241     if ( value & ShaderStageFlagBits::eIntersectionKHR ) result += "IntersectionKHR | ";
13242     if ( value & ShaderStageFlagBits::eCallableKHR ) result += "CallableKHR | ";
13243     if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | ";
13244     if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | ";
13245     return "{ " + result.substr(0, result.size() - 3) + " }";
13246   }
13247 
13248 
13249   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
13250 
13251   template <> struct FlagTraits<SparseImageFormatFlagBits>
13252   {
13253     enum : VkFlags
13254     {
13255       allFlags = VkFlags(SparseImageFormatFlagBits::eSingleMiptail) | VkFlags(SparseImageFormatFlagBits::eAlignedMipSize) | VkFlags(SparseImageFormatFlagBits::eNonstandardBlockSize)
13256     };
13257   };
13258 
operator |(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)13259   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13260   {
13261     return SparseImageFormatFlags( bit0 ) | bit1;
13262   }
13263 
operator &(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)13264   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13265   {
13266     return SparseImageFormatFlags( bit0 ) & bit1;
13267   }
13268 
operator ^(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)13269   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13270   {
13271     return SparseImageFormatFlags( bit0 ) ^ bit1;
13272   }
13273 
operator ~(SparseImageFormatFlagBits bits)13274   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits ) VULKAN_HPP_NOEXCEPT
13275   {
13276     return ~( SparseImageFormatFlags( bits ) );
13277   }
13278 
to_string(SparseImageFormatFlags value)13279   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value  )
13280   {
13281 
13282     if ( !value ) return "{}";
13283     std::string result;
13284 
13285     if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | ";
13286     if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | ";
13287     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | ";
13288     return "{ " + result.substr(0, result.size() - 3) + " }";
13289   }
13290 
13291 
13292   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
13293 
13294   template <> struct FlagTraits<SparseMemoryBindFlagBits>
13295   {
13296     enum : VkFlags
13297     {
13298       allFlags = VkFlags(SparseMemoryBindFlagBits::eMetadata)
13299     };
13300   };
13301 
operator |(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)13302   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13303   {
13304     return SparseMemoryBindFlags( bit0 ) | bit1;
13305   }
13306 
operator &(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)13307   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13308   {
13309     return SparseMemoryBindFlags( bit0 ) & bit1;
13310   }
13311 
operator ^(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)13312   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13313   {
13314     return SparseMemoryBindFlags( bit0 ) ^ bit1;
13315   }
13316 
operator ~(SparseMemoryBindFlagBits bits)13317   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits ) VULKAN_HPP_NOEXCEPT
13318   {
13319     return ~( SparseMemoryBindFlags( bits ) );
13320   }
13321 
to_string(SparseMemoryBindFlags value)13322   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value  )
13323   {
13324 
13325     if ( !value ) return "{}";
13326     std::string result;
13327 
13328     if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | ";
13329     return "{ " + result.substr(0, result.size() - 3) + " }";
13330   }
13331 
13332 
13333   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
13334 
13335   template <> struct FlagTraits<StencilFaceFlagBits>
13336   {
13337     enum : VkFlags
13338     {
13339       allFlags = VkFlags(StencilFaceFlagBits::eFront) | VkFlags(StencilFaceFlagBits::eBack) | VkFlags(StencilFaceFlagBits::eFrontAndBack)
13340     };
13341   };
13342 
operator |(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)13343   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13344   {
13345     return StencilFaceFlags( bit0 ) | bit1;
13346   }
13347 
operator &(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)13348   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13349   {
13350     return StencilFaceFlags( bit0 ) & bit1;
13351   }
13352 
operator ^(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)13353   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13354   {
13355     return StencilFaceFlags( bit0 ) ^ bit1;
13356   }
13357 
operator ~(StencilFaceFlagBits bits)13358   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT
13359   {
13360     return ~( StencilFaceFlags( bits ) );
13361   }
13362 
to_string(StencilFaceFlags value)13363   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value  )
13364   {
13365 
13366     if ( !value ) return "{}";
13367     std::string result;
13368 
13369     if ( value & StencilFaceFlagBits::eFront ) result += "Front | ";
13370     if ( value & StencilFaceFlagBits::eBack ) result += "Back | ";
13371     return "{ " + result.substr(0, result.size() - 3) + " }";
13372   }
13373 
13374 #ifdef VK_USE_PLATFORM_GGP
13375   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkFlags
13376   {};
13377 
to_string(StreamDescriptorSurfaceCreateFlagBitsGGP)13378   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
13379   {
13380     return "(void)";
13381   }
13382 
13383   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
13384 
to_string(StreamDescriptorSurfaceCreateFlagsGGP)13385   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP  )
13386   {
13387 
13388     return "{}";
13389   }
13390 #endif /*VK_USE_PLATFORM_GGP*/
13391 
13392 
13393   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
13394 
13395   template <> struct FlagTraits<SubgroupFeatureFlagBits>
13396   {
13397     enum : VkFlags
13398     {
13399       allFlags = VkFlags(SubgroupFeatureFlagBits::eBasic) | VkFlags(SubgroupFeatureFlagBits::eVote) | VkFlags(SubgroupFeatureFlagBits::eArithmetic) | VkFlags(SubgroupFeatureFlagBits::eBallot) | VkFlags(SubgroupFeatureFlagBits::eShuffle) | VkFlags(SubgroupFeatureFlagBits::eShuffleRelative) | VkFlags(SubgroupFeatureFlagBits::eClustered) | VkFlags(SubgroupFeatureFlagBits::eQuad) | VkFlags(SubgroupFeatureFlagBits::ePartitionedNV)
13400     };
13401   };
13402 
operator |(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)13403   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13404   {
13405     return SubgroupFeatureFlags( bit0 ) | bit1;
13406   }
13407 
operator &(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)13408   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13409   {
13410     return SubgroupFeatureFlags( bit0 ) & bit1;
13411   }
13412 
operator ^(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)13413   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13414   {
13415     return SubgroupFeatureFlags( bit0 ) ^ bit1;
13416   }
13417 
operator ~(SubgroupFeatureFlagBits bits)13418   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
13419   {
13420     return ~( SubgroupFeatureFlags( bits ) );
13421   }
13422 
to_string(SubgroupFeatureFlags value)13423   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value  )
13424   {
13425 
13426     if ( !value ) return "{}";
13427     std::string result;
13428 
13429     if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | ";
13430     if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | ";
13431     if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | ";
13432     if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | ";
13433     if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | ";
13434     if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | ";
13435     if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | ";
13436     if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | ";
13437     if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | ";
13438     return "{ " + result.substr(0, result.size() - 3) + " }";
13439   }
13440 
13441 
13442   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
13443 
13444   template <> struct FlagTraits<SubpassDescriptionFlagBits>
13445   {
13446     enum : VkFlags
13447     {
13448       allFlags = VkFlags(SubpassDescriptionFlagBits::ePerViewAttributesNVX) | VkFlags(SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX) | VkFlags(SubpassDescriptionFlagBits::eFragmentRegionQCOM) | VkFlags(SubpassDescriptionFlagBits::eShaderResolveQCOM)
13449     };
13450   };
13451 
operator |(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)13452   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13453   {
13454     return SubpassDescriptionFlags( bit0 ) | bit1;
13455   }
13456 
operator &(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)13457   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13458   {
13459     return SubpassDescriptionFlags( bit0 ) & bit1;
13460   }
13461 
operator ^(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)13462   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
13463   {
13464     return SubpassDescriptionFlags( bit0 ) ^ bit1;
13465   }
13466 
operator ~(SubpassDescriptionFlagBits bits)13467   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT
13468   {
13469     return ~( SubpassDescriptionFlags( bits ) );
13470   }
13471 
to_string(SubpassDescriptionFlags value)13472   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value  )
13473   {
13474 
13475     if ( !value ) return "{}";
13476     std::string result;
13477 
13478     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | ";
13479     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | ";
13480     if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM ) result += "FragmentRegionQCOM | ";
13481     if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM ) result += "ShaderResolveQCOM | ";
13482     return "{ " + result.substr(0, result.size() - 3) + " }";
13483   }
13484 
13485 
13486   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
13487 
13488   template <> struct FlagTraits<SurfaceCounterFlagBitsEXT>
13489   {
13490     enum : VkFlags
13491     {
13492       allFlags = VkFlags(SurfaceCounterFlagBitsEXT::eVblank)
13493     };
13494   };
13495 
operator |(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13496   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13497   {
13498     return SurfaceCounterFlagsEXT( bit0 ) | bit1;
13499   }
13500 
operator &(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13501   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13502   {
13503     return SurfaceCounterFlagsEXT( bit0 ) & bit1;
13504   }
13505 
operator ^(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13506   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13507   {
13508     return SurfaceCounterFlagsEXT( bit0 ) ^ bit1;
13509   }
13510 
operator ~(SurfaceCounterFlagBitsEXT bits)13511   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13512   {
13513     return ~( SurfaceCounterFlagsEXT( bits ) );
13514   }
13515 
to_string(SurfaceCounterFlagsEXT value)13516   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value  )
13517   {
13518 
13519     if ( !value ) return "{}";
13520     std::string result;
13521 
13522     if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | ";
13523     return "{ " + result.substr(0, result.size() - 3) + " }";
13524   }
13525 
13526 
13527   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
13528 
13529   template <> struct FlagTraits<SurfaceTransformFlagBitsKHR>
13530   {
13531     enum : VkFlags
13532     {
13533       allFlags = VkFlags(SurfaceTransformFlagBitsKHR::eIdentity) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirror) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eInherit)
13534     };
13535   };
13536 
operator |(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)13537   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13538   {
13539     return SurfaceTransformFlagsKHR( bit0 ) | bit1;
13540   }
13541 
operator &(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)13542   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13543   {
13544     return SurfaceTransformFlagsKHR( bit0 ) & bit1;
13545   }
13546 
operator ^(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)13547   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13548   {
13549     return SurfaceTransformFlagsKHR( bit0 ) ^ bit1;
13550   }
13551 
operator ~(SurfaceTransformFlagBitsKHR bits)13552   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13553   {
13554     return ~( SurfaceTransformFlagsKHR( bits ) );
13555   }
13556 
to_string(SurfaceTransformFlagsKHR value)13557   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value  )
13558   {
13559 
13560     if ( !value ) return "{}";
13561     std::string result;
13562 
13563     if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | ";
13564     if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | ";
13565     if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | ";
13566     if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | ";
13567     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | ";
13568     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | ";
13569     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | ";
13570     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | ";
13571     if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | ";
13572     return "{ " + result.substr(0, result.size() - 3) + " }";
13573   }
13574 
13575 
13576   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
13577 
13578   template <> struct FlagTraits<SwapchainCreateFlagBitsKHR>
13579   {
13580     enum : VkFlags
13581     {
13582       allFlags = VkFlags(SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions) | VkFlags(SwapchainCreateFlagBitsKHR::eProtected) | VkFlags(SwapchainCreateFlagBitsKHR::eMutableFormat)
13583     };
13584   };
13585 
operator |(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)13586   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13587   {
13588     return SwapchainCreateFlagsKHR( bit0 ) | bit1;
13589   }
13590 
operator &(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)13591   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13592   {
13593     return SwapchainCreateFlagsKHR( bit0 ) & bit1;
13594   }
13595 
operator ^(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)13596   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13597   {
13598     return SwapchainCreateFlagsKHR( bit0 ) ^ bit1;
13599   }
13600 
operator ~(SwapchainCreateFlagBitsKHR bits)13601   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13602   {
13603     return ~( SwapchainCreateFlagsKHR( bits ) );
13604   }
13605 
to_string(SwapchainCreateFlagsKHR value)13606   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value  )
13607   {
13608 
13609     if ( !value ) return "{}";
13610     std::string result;
13611 
13612     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
13613     if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | ";
13614     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | ";
13615     return "{ " + result.substr(0, result.size() - 3) + " }";
13616   }
13617 
13618 
13619   using ToolPurposeFlagsEXT = Flags<ToolPurposeFlagBitsEXT>;
13620 
13621   template <> struct FlagTraits<ToolPurposeFlagBitsEXT>
13622   {
13623     enum : VkFlags
13624     {
13625       allFlags = VkFlags(ToolPurposeFlagBitsEXT::eValidation) | VkFlags(ToolPurposeFlagBitsEXT::eProfiling) | VkFlags(ToolPurposeFlagBitsEXT::eTracing) | VkFlags(ToolPurposeFlagBitsEXT::eAdditionalFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eModifyingFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eDebugReporting) | VkFlags(ToolPurposeFlagBitsEXT::eDebugMarkers)
13626     };
13627   };
13628 
operator |(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13629   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13630   {
13631     return ToolPurposeFlagsEXT( bit0 ) | bit1;
13632   }
13633 
operator &(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13634   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13635   {
13636     return ToolPurposeFlagsEXT( bit0 ) & bit1;
13637   }
13638 
operator ^(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13639   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13640   {
13641     return ToolPurposeFlagsEXT( bit0 ) ^ bit1;
13642   }
13643 
operator ~(ToolPurposeFlagBitsEXT bits)13644   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13645   {
13646     return ~( ToolPurposeFlagsEXT( bits ) );
13647   }
13648 
to_string(ToolPurposeFlagsEXT value)13649   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value  )
13650   {
13651 
13652     if ( !value ) return "{}";
13653     std::string result;
13654 
13655     if ( value & ToolPurposeFlagBitsEXT::eValidation ) result += "Validation | ";
13656     if ( value & ToolPurposeFlagBitsEXT::eProfiling ) result += "Profiling | ";
13657     if ( value & ToolPurposeFlagBitsEXT::eTracing ) result += "Tracing | ";
13658     if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures ) result += "AdditionalFeatures | ";
13659     if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures ) result += "ModifyingFeatures | ";
13660     if ( value & ToolPurposeFlagBitsEXT::eDebugReporting ) result += "DebugReporting | ";
13661     if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers ) result += "DebugMarkers | ";
13662     return "{ " + result.substr(0, result.size() - 3) + " }";
13663   }
13664 
13665   enum class ValidationCacheCreateFlagBitsEXT : VkFlags
13666   {};
13667 
to_string(ValidationCacheCreateFlagBitsEXT)13668   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
13669   {
13670     return "(void)";
13671   }
13672 
13673   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
13674 
to_string(ValidationCacheCreateFlagsEXT)13675   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT  )
13676   {
13677 
13678     return "{}";
13679   }
13680 
13681 #ifdef VK_USE_PLATFORM_VI_NN
13682   enum class ViSurfaceCreateFlagBitsNN : VkFlags
13683   {};
13684 
to_string(ViSurfaceCreateFlagBitsNN)13685   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
13686   {
13687     return "(void)";
13688   }
13689 
13690   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
13691 
to_string(ViSurfaceCreateFlagsNN)13692   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN  )
13693   {
13694 
13695     return "{}";
13696   }
13697 #endif /*VK_USE_PLATFORM_VI_NN*/
13698 
13699 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
13700   enum class WaylandSurfaceCreateFlagBitsKHR : VkFlags
13701   {};
13702 
to_string(WaylandSurfaceCreateFlagBitsKHR)13703   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
13704   {
13705     return "(void)";
13706   }
13707 
13708   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
13709 
to_string(WaylandSurfaceCreateFlagsKHR)13710   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR  )
13711   {
13712 
13713     return "{}";
13714   }
13715 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
13716 
13717 #ifdef VK_USE_PLATFORM_WIN32_KHR
13718   enum class Win32SurfaceCreateFlagBitsKHR : VkFlags
13719   {};
13720 
to_string(Win32SurfaceCreateFlagBitsKHR)13721   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
13722   {
13723     return "(void)";
13724   }
13725 
13726   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
13727 
to_string(Win32SurfaceCreateFlagsKHR)13728   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR  )
13729   {
13730 
13731     return "{}";
13732   }
13733 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13734 
13735 #ifdef VK_USE_PLATFORM_XCB_KHR
13736   enum class XcbSurfaceCreateFlagBitsKHR : VkFlags
13737   {};
13738 
to_string(XcbSurfaceCreateFlagBitsKHR)13739   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
13740   {
13741     return "(void)";
13742   }
13743 
13744   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
13745 
to_string(XcbSurfaceCreateFlagsKHR)13746   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR  )
13747   {
13748 
13749     return "{}";
13750   }
13751 #endif /*VK_USE_PLATFORM_XCB_KHR*/
13752 
13753 #ifdef VK_USE_PLATFORM_XLIB_KHR
13754   enum class XlibSurfaceCreateFlagBitsKHR : VkFlags
13755   {};
13756 
to_string(XlibSurfaceCreateFlagBitsKHR)13757   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
13758   {
13759     return "(void)";
13760   }
13761 
13762   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
13763 
to_string(XlibSurfaceCreateFlagsKHR)13764   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR  )
13765   {
13766 
13767     return "{}";
13768   }
13769 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
13770 } // namespace VULKAN_HPP_NAMESPACE
13771 
13772 #ifndef VULKAN_HPP_NO_EXCEPTIONS
13773 namespace std
13774 {
13775   template <>
13776   struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
13777   {};
13778 }
13779 #endif
13780 
13781 namespace VULKAN_HPP_NAMESPACE
13782 {
13783 #ifndef VULKAN_HPP_NO_EXCEPTIONS
13784   class ErrorCategoryImpl : public std::error_category
13785   {
13786     public:
name() const13787     virtual const char* name() const VULKAN_HPP_NOEXCEPT override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; }
message(int ev) const13788     virtual std::string message(int ev) const override { return to_string(static_cast<Result>(ev)); }
13789   };
13790 
13791   class Error
13792   {
13793     public:
13794     Error() VULKAN_HPP_NOEXCEPT = default;
13795     Error(const Error&) VULKAN_HPP_NOEXCEPT = default;
13796     virtual ~Error() VULKAN_HPP_NOEXCEPT = default;
13797 
13798     virtual const char* what() const VULKAN_HPP_NOEXCEPT = 0;
13799   };
13800 
13801   class LogicError : public Error, public std::logic_error
13802   {
13803     public:
LogicError(const std::string & what)13804     explicit LogicError( const std::string& what )
13805       : Error(), std::logic_error(what) {}
LogicError(char const * what)13806     explicit LogicError( char const * what )
13807       : Error(), std::logic_error(what) {}
13808 
what() const13809     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::logic_error::what(); }
13810   };
13811 
13812   class SystemError : public Error, public std::system_error
13813   {
13814     public:
SystemError(std::error_code ec)13815     SystemError( std::error_code ec )
13816       : Error(), std::system_error(ec) {}
SystemError(std::error_code ec,std::string const & what)13817     SystemError( std::error_code ec, std::string const& what )
13818       : Error(), std::system_error(ec, what) {}
SystemError(std::error_code ec,char const * what)13819     SystemError( std::error_code ec, char const * what )
13820       : Error(), std::system_error(ec, what) {}
SystemError(int ev,std::error_category const & ecat)13821     SystemError( int ev, std::error_category const& ecat )
13822       : Error(), std::system_error(ev, ecat) {}
SystemError(int ev,std::error_category const & ecat,std::string const & what)13823     SystemError( int ev, std::error_category const& ecat, std::string const& what)
13824       : Error(), std::system_error(ev, ecat, what) {}
SystemError(int ev,std::error_category const & ecat,char const * what)13825     SystemError( int ev, std::error_category const& ecat, char const * what)
13826       : Error(), std::system_error(ev, ecat, what) {}
13827 
what() const13828     virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::system_error::what(); }
13829   };
13830 
errorCategory()13831   VULKAN_HPP_INLINE const std::error_category& errorCategory() VULKAN_HPP_NOEXCEPT
13832   {
13833     static ErrorCategoryImpl instance;
13834     return instance;
13835   }
13836 
make_error_code(Result e)13837   VULKAN_HPP_INLINE std::error_code make_error_code(Result e) VULKAN_HPP_NOEXCEPT
13838   {
13839     return std::error_code(static_cast<int>(e), errorCategory());
13840   }
13841 
make_error_condition(Result e)13842   VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e) VULKAN_HPP_NOEXCEPT
13843   {
13844     return std::error_condition(static_cast<int>(e), errorCategory());
13845   }
13846 
13847   class OutOfHostMemoryError : public SystemError
13848   {
13849   public:
OutOfHostMemoryError(std::string const & message)13850     OutOfHostMemoryError( std::string const& message )
13851       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
OutOfHostMemoryError(char const * message)13852     OutOfHostMemoryError( char const * message )
13853       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
13854   };
13855 
13856   class OutOfDeviceMemoryError : public SystemError
13857   {
13858   public:
OutOfDeviceMemoryError(std::string const & message)13859     OutOfDeviceMemoryError( std::string const& message )
13860       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
OutOfDeviceMemoryError(char const * message)13861     OutOfDeviceMemoryError( char const * message )
13862       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
13863   };
13864 
13865   class InitializationFailedError : public SystemError
13866   {
13867   public:
InitializationFailedError(std::string const & message)13868     InitializationFailedError( std::string const& message )
13869       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
InitializationFailedError(char const * message)13870     InitializationFailedError( char const * message )
13871       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
13872   };
13873 
13874   class DeviceLostError : public SystemError
13875   {
13876   public:
DeviceLostError(std::string const & message)13877     DeviceLostError( std::string const& message )
13878       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
DeviceLostError(char const * message)13879     DeviceLostError( char const * message )
13880       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
13881   };
13882 
13883   class MemoryMapFailedError : public SystemError
13884   {
13885   public:
MemoryMapFailedError(std::string const & message)13886     MemoryMapFailedError( std::string const& message )
13887       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
MemoryMapFailedError(char const * message)13888     MemoryMapFailedError( char const * message )
13889       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
13890   };
13891 
13892   class LayerNotPresentError : public SystemError
13893   {
13894   public:
LayerNotPresentError(std::string const & message)13895     LayerNotPresentError( std::string const& message )
13896       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
LayerNotPresentError(char const * message)13897     LayerNotPresentError( char const * message )
13898       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
13899   };
13900 
13901   class ExtensionNotPresentError : public SystemError
13902   {
13903   public:
ExtensionNotPresentError(std::string const & message)13904     ExtensionNotPresentError( std::string const& message )
13905       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
ExtensionNotPresentError(char const * message)13906     ExtensionNotPresentError( char const * message )
13907       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
13908   };
13909 
13910   class FeatureNotPresentError : public SystemError
13911   {
13912   public:
FeatureNotPresentError(std::string const & message)13913     FeatureNotPresentError( std::string const& message )
13914       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
FeatureNotPresentError(char const * message)13915     FeatureNotPresentError( char const * message )
13916       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
13917   };
13918 
13919   class IncompatibleDriverError : public SystemError
13920   {
13921   public:
IncompatibleDriverError(std::string const & message)13922     IncompatibleDriverError( std::string const& message )
13923       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
IncompatibleDriverError(char const * message)13924     IncompatibleDriverError( char const * message )
13925       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
13926   };
13927 
13928   class TooManyObjectsError : public SystemError
13929   {
13930   public:
TooManyObjectsError(std::string const & message)13931     TooManyObjectsError( std::string const& message )
13932       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
TooManyObjectsError(char const * message)13933     TooManyObjectsError( char const * message )
13934       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
13935   };
13936 
13937   class FormatNotSupportedError : public SystemError
13938   {
13939   public:
FormatNotSupportedError(std::string const & message)13940     FormatNotSupportedError( std::string const& message )
13941       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
FormatNotSupportedError(char const * message)13942     FormatNotSupportedError( char const * message )
13943       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
13944   };
13945 
13946   class FragmentedPoolError : public SystemError
13947   {
13948   public:
FragmentedPoolError(std::string const & message)13949     FragmentedPoolError( std::string const& message )
13950       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
FragmentedPoolError(char const * message)13951     FragmentedPoolError( char const * message )
13952       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
13953   };
13954 
13955   class UnknownError : public SystemError
13956   {
13957   public:
UnknownError(std::string const & message)13958     UnknownError( std::string const& message )
13959       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
UnknownError(char const * message)13960     UnknownError( char const * message )
13961       : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
13962   };
13963 
13964   class OutOfPoolMemoryError : public SystemError
13965   {
13966   public:
OutOfPoolMemoryError(std::string const & message)13967     OutOfPoolMemoryError( std::string const& message )
13968       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
OutOfPoolMemoryError(char const * message)13969     OutOfPoolMemoryError( char const * message )
13970       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
13971   };
13972 
13973   class InvalidExternalHandleError : public SystemError
13974   {
13975   public:
InvalidExternalHandleError(std::string const & message)13976     InvalidExternalHandleError( std::string const& message )
13977       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
InvalidExternalHandleError(char const * message)13978     InvalidExternalHandleError( char const * message )
13979       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
13980   };
13981 
13982   class FragmentationError : public SystemError
13983   {
13984   public:
FragmentationError(std::string const & message)13985     FragmentationError( std::string const& message )
13986       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
FragmentationError(char const * message)13987     FragmentationError( char const * message )
13988       : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
13989   };
13990 
13991   class InvalidOpaqueCaptureAddressError : public SystemError
13992   {
13993   public:
InvalidOpaqueCaptureAddressError(std::string const & message)13994     InvalidOpaqueCaptureAddressError( std::string const& message )
13995       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
InvalidOpaqueCaptureAddressError(char const * message)13996     InvalidOpaqueCaptureAddressError( char const * message )
13997       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
13998   };
13999 
14000   class SurfaceLostKHRError : public SystemError
14001   {
14002   public:
SurfaceLostKHRError(std::string const & message)14003     SurfaceLostKHRError( std::string const& message )
14004       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
SurfaceLostKHRError(char const * message)14005     SurfaceLostKHRError( char const * message )
14006       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
14007   };
14008 
14009   class NativeWindowInUseKHRError : public SystemError
14010   {
14011   public:
NativeWindowInUseKHRError(std::string const & message)14012     NativeWindowInUseKHRError( std::string const& message )
14013       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
NativeWindowInUseKHRError(char const * message)14014     NativeWindowInUseKHRError( char const * message )
14015       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
14016   };
14017 
14018   class OutOfDateKHRError : public SystemError
14019   {
14020   public:
OutOfDateKHRError(std::string const & message)14021     OutOfDateKHRError( std::string const& message )
14022       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
OutOfDateKHRError(char const * message)14023     OutOfDateKHRError( char const * message )
14024       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
14025   };
14026 
14027   class IncompatibleDisplayKHRError : public SystemError
14028   {
14029   public:
IncompatibleDisplayKHRError(std::string const & message)14030     IncompatibleDisplayKHRError( std::string const& message )
14031       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
IncompatibleDisplayKHRError(char const * message)14032     IncompatibleDisplayKHRError( char const * message )
14033       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
14034   };
14035 
14036   class ValidationFailedEXTError : public SystemError
14037   {
14038   public:
ValidationFailedEXTError(std::string const & message)14039     ValidationFailedEXTError( std::string const& message )
14040       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
ValidationFailedEXTError(char const * message)14041     ValidationFailedEXTError( char const * message )
14042       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
14043   };
14044 
14045   class InvalidShaderNVError : public SystemError
14046   {
14047   public:
InvalidShaderNVError(std::string const & message)14048     InvalidShaderNVError( std::string const& message )
14049       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
InvalidShaderNVError(char const * message)14050     InvalidShaderNVError( char const * message )
14051       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
14052   };
14053 
14054   class IncompatibleVersionKHRError : public SystemError
14055   {
14056   public:
IncompatibleVersionKHRError(std::string const & message)14057     IncompatibleVersionKHRError( std::string const& message )
14058       : SystemError( make_error_code( Result::eErrorIncompatibleVersionKHR ), message ) {}
IncompatibleVersionKHRError(char const * message)14059     IncompatibleVersionKHRError( char const * message )
14060       : SystemError( make_error_code( Result::eErrorIncompatibleVersionKHR ), message ) {}
14061   };
14062 
14063   class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
14064   {
14065   public:
InvalidDrmFormatModifierPlaneLayoutEXTError(std::string const & message)14066     InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message )
14067       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
InvalidDrmFormatModifierPlaneLayoutEXTError(char const * message)14068     InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
14069       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
14070   };
14071 
14072   class NotPermittedEXTError : public SystemError
14073   {
14074   public:
NotPermittedEXTError(std::string const & message)14075     NotPermittedEXTError( std::string const& message )
14076       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
NotPermittedEXTError(char const * message)14077     NotPermittedEXTError( char const * message )
14078       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
14079   };
14080 
14081   class FullScreenExclusiveModeLostEXTError : public SystemError
14082   {
14083   public:
FullScreenExclusiveModeLostEXTError(std::string const & message)14084     FullScreenExclusiveModeLostEXTError( std::string const& message )
14085       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
FullScreenExclusiveModeLostEXTError(char const * message)14086     FullScreenExclusiveModeLostEXTError( char const * message )
14087       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
14088   };
14089 
14090 
throwResultException(Result result,char const * message)14091   [[noreturn]] static void throwResultException( Result result, char const * message )
14092   {
14093     switch ( result )
14094     {
14095       case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
14096       case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
14097       case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
14098       case Result::eErrorDeviceLost: throw DeviceLostError( message );
14099       case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
14100       case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
14101       case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
14102       case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
14103       case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
14104       case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
14105       case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
14106       case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
14107       case Result::eErrorUnknown: throw UnknownError( message );
14108       case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
14109       case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
14110       case Result::eErrorFragmentation: throw FragmentationError( message );
14111       case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
14112       case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
14113       case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
14114       case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
14115       case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
14116       case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
14117       case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
14118       case Result::eErrorIncompatibleVersionKHR: throw IncompatibleVersionKHRError( message );
14119       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
14120       case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
14121       case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
14122       default: throw SystemError( make_error_code( result ) );
14123     }
14124   }
14125 #endif
14126 
ignore(T const &)14127   template <typename T> void ignore(T const&) VULKAN_HPP_NOEXCEPT {}
14128 
14129   template <typename T>
14130   struct ResultValue
14131   {
14132 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14133     ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(v)))
14134 #else
14135     ResultValue( Result r, T & v )
14136 #endif
14137       : result( r )
14138       , value( v )
14139     {}
14140 
14141 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14142     ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(std::move(v))))
14143 #else
14144     ResultValue( Result r, T && v )
14145 #endif
14146       : result( r )
14147       , value( std::move( v ) )
14148     {}
14149 
14150     Result  result;
14151     T       value;
14152 
operator std::tuple<Result&,T&>VULKAN_HPP_NAMESPACE::ResultValue14153     operator std::tuple<Result&, T&>() VULKAN_HPP_NOEXCEPT { return std::tuple<Result&, T&>(result, value); }
14154 
14155 #if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
14156     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T const&VULKAN_HPP_NAMESPACE::ResultValue14157     operator T const& () const & VULKAN_HPP_NOEXCEPT
14158     {
14159       return value;
14160     }
14161 
14162     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T&VULKAN_HPP_NAMESPACE::ResultValue14163     operator T& () & VULKAN_HPP_NOEXCEPT
14164     {
14165       return value;
14166     }
14167 
14168     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T const&&VULKAN_HPP_NAMESPACE::ResultValue14169     operator T const&& () const && VULKAN_HPP_NOEXCEPT
14170     {
14171       return std::move( value );
14172     }
14173 
14174     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator T&&VULKAN_HPP_NAMESPACE::ResultValue14175     operator T&& () && VULKAN_HPP_NOEXCEPT
14176     {
14177       return std::move( value );
14178     }
14179 #endif
14180   };
14181 
14182 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
14183   template <typename Type, typename Dispatch>
14184   struct ResultValue<UniqueHandle<Type,Dispatch>>
14185   {
14186 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14187     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v) VULKAN_HPP_NOEXCEPT
14188 #else
14189     ResultValue(Result r, UniqueHandle<Type, Dispatch> && v)
14190 #endif
14191       : result(r)
14192       , value(std::move(v))
14193     {}
14194 
asTupleVULKAN_HPP_NAMESPACE::ResultValue14195     std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple()
14196     {
14197       return std::make_tuple( result, std::move( value ) );
14198     }
14199 
14200 #  if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST)
14201     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator UniqueHandle<Type,Dispatch>&VULKAN_HPP_NAMESPACE::ResultValue14202     operator UniqueHandle<Type, Dispatch>& () & VULKAN_HPP_NOEXCEPT
14203     {
14204       return value;
14205     }
14206 
14207     VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.")
operator UniqueHandle<Type,Dispatch>VULKAN_HPP_NAMESPACE::ResultValue14208     operator UniqueHandle<Type, Dispatch>() VULKAN_HPP_NOEXCEPT
14209     {
14210       return std::move(value);
14211     }
14212 #  endif
14213 
14214     Result                        result;
14215     UniqueHandle<Type, Dispatch>  value;
14216   };
14217 
14218   template <typename Type, typename Dispatch>
14219   struct ResultValue<std::vector<UniqueHandle<Type, Dispatch>>>
14220   {
14221 #  ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue14222     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v ) VULKAN_HPP_NOEXCEPT
14223 #  else
14224     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v )
14225 #  endif
14226       : result( r )
14227       , value( std::move( v ) )
14228     {}
14229 
14230     Result                                    result;
14231     std::vector<UniqueHandle<Type, Dispatch>> value;
14232 
operator std::tuple<Result&,std::vector<UniqueHandle<Type,Dispatch>>&>VULKAN_HPP_NAMESPACE::ResultValue14233     operator std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>() VULKAN_HPP_NOEXCEPT
14234     {
14235       return std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>( result, value );
14236     }
14237   };
14238 #endif
14239 
14240   template <typename T>
14241   struct ResultValueType
14242   {
14243 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14244     typedef ResultValue<T>  type;
14245 #else
14246     typedef T               type;
14247 #endif
14248   };
14249 
14250   template <>
14251   struct ResultValueType<void>
14252   {
14253 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14254     typedef Result type;
14255 #else
14256     typedef void   type;
14257 #endif
14258   };
14259 
createResultValue(Result result,char const * message)14260   VULKAN_HPP_INLINE ResultValueType<void>::type createResultValue( Result result, char const * message )
14261   {
14262 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14263     ignore(message);
14264     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14265     return result;
14266 #else
14267     if ( result != Result::eSuccess )
14268     {
14269       throwResultException( result, message );
14270     }
14271 #endif
14272   }
14273 
14274   template <typename T>
createResultValue(Result result,T & data,char const * message)14275   VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValue( Result result, T & data, char const * message )
14276   {
14277 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14278     ignore(message);
14279     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14280     return ResultValue<T>( result, std::move( data ) );
14281 #else
14282     if ( result != Result::eSuccess )
14283     {
14284       throwResultException( result, message );
14285     }
14286     return std::move( data );
14287 #endif
14288   }
14289 
createResultValue(Result result,char const * message,std::initializer_list<Result> successCodes)14290   VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list<Result> successCodes )
14291   {
14292 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14293     ignore(message);
14294     ignore(successCodes);   // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
14295     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14296 #else
14297     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14298     {
14299       throwResultException( result, message );
14300     }
14301 #endif
14302     return result;
14303   }
14304 
14305   template <typename T>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes)14306   VULKAN_HPP_INLINE ResultValue<T> createResultValue( Result result, T & data, char const * message, std::initializer_list<Result> successCodes )
14307   {
14308 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14309     ignore(message);
14310     ignore(successCodes);   // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
14311     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14312 #else
14313     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14314     {
14315       throwResultException( result, message );
14316     }
14317 #endif
14318     return ResultValue<T>( result, data );
14319   }
14320 
14321 #ifndef VULKAN_HPP_NO_SMART_HANDLE
14322   template <typename T, typename D>
createResultValue(Result result,T & data,char const * message,typename UniqueHandleTraits<T,D>::deleter const & deleter)14323   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T,D>>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits<T,D>::deleter const& deleter )
14324   {
14325 #ifdef VULKAN_HPP_NO_EXCEPTIONS
14326     ignore(message);
14327     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14328     return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) );
14329 #else
14330     if ( result != Result::eSuccess )
14331     {
14332       throwResultException( result, message );
14333     }
14334     return UniqueHandle<T,D>(data, deleter);
14335 #endif
14336   }
14337 
14338   template <typename T, typename D>
14339   VULKAN_HPP_INLINE ResultValue<UniqueHandle<T, D>>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes,typename UniqueHandleTraits<T,D>::deleter const & deleter)14340                     createResultValue( Result                                             result,
14341                                        T &                                                data,
14342                                        char const *                                       message,
14343                                        std::initializer_list<Result>                      successCodes,
14344                                        typename UniqueHandleTraits<T, D>::deleter const & deleter )
14345   {
14346 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
14347     ignore( message );
14348     ignore(successCodes);   // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
14349     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14350 #  else
14351     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14352     {
14353       throwResultException( result, message );
14354     }
14355 #  endif
14356     return ResultValue<UniqueHandle<T, D>>( result, UniqueHandle<T, D>( data, deleter ) );
14357   }
14358 
14359   template <typename T, typename D>
14360   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<T, D>>>::type
createResultValue(Result result,std::vector<UniqueHandle<T,D>> && data,char const * message)14361     createResultValue( Result result, std::vector<UniqueHandle<T, D>> && data, char const * message )
14362   {
14363 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
14364     ignore( message );
14365     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
14366     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
14367 #  else
14368     if ( result != Result::eSuccess )
14369     {
14370       throwResultException( result, message );
14371     }
14372     return std::move( data );
14373 #  endif
14374   }
14375 
14376   template <typename T, typename D>
14377   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<T, D>>>
createResultValue(Result result,std::vector<UniqueHandle<T,D>> && data,char const * message,std::initializer_list<Result> successCodes)14378                     createResultValue( Result                             result,
14379                                        std::vector<UniqueHandle<T, D>> && data,
14380                                        char const *                       message,
14381                                        std::initializer_list<Result>      successCodes )
14382   {
14383 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
14384     ignore( message );
14385     ignore(successCodes);   // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
14386     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
14387 #  else
14388     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
14389     {
14390       throwResultException( result, message );
14391     }
14392 #  endif
14393     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
14394   }
14395 #endif
14396 
14397   struct AabbPositionsKHR
14398   {
14399 
14400 
14401 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR14402     VULKAN_HPP_CONSTEXPR AabbPositionsKHR(float minX_ = {}, float minY_ = {}, float minZ_ = {}, float maxX_ = {}, float maxY_ = {}, float maxZ_ = {}) VULKAN_HPP_NOEXCEPT
14403     : minX( minX_ ), minY( minY_ ), minZ( minZ_ ), maxX( maxX_ ), maxY( maxY_ ), maxZ( maxZ_ )
14404     {}
14405 
14406     VULKAN_HPP_CONSTEXPR AabbPositionsKHR( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14407 
AabbPositionsKHRVULKAN_HPP_NAMESPACE::AabbPositionsKHR14408     AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14409     {
14410       *this = rhs;
14411     }
14412 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14413 
operator =VULKAN_HPP_NAMESPACE::AabbPositionsKHR14414     AabbPositionsKHR & operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14415     {
14416       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AabbPositionsKHR const *>( &rhs );
14417       return *this;
14418     }
14419 
operator =VULKAN_HPP_NAMESPACE::AabbPositionsKHR14420     AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14421     {
14422       memcpy( static_cast<void *>( this ), &rhs, sizeof( AabbPositionsKHR ) );
14423       return *this;
14424     }
14425 
setMinXVULKAN_HPP_NAMESPACE::AabbPositionsKHR14426     AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT
14427     {
14428       minX = minX_;
14429       return *this;
14430     }
14431 
setMinYVULKAN_HPP_NAMESPACE::AabbPositionsKHR14432     AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT
14433     {
14434       minY = minY_;
14435       return *this;
14436     }
14437 
setMinZVULKAN_HPP_NAMESPACE::AabbPositionsKHR14438     AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT
14439     {
14440       minZ = minZ_;
14441       return *this;
14442     }
14443 
setMaxXVULKAN_HPP_NAMESPACE::AabbPositionsKHR14444     AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT
14445     {
14446       maxX = maxX_;
14447       return *this;
14448     }
14449 
setMaxYVULKAN_HPP_NAMESPACE::AabbPositionsKHR14450     AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT
14451     {
14452       maxY = maxY_;
14453       return *this;
14454     }
14455 
setMaxZVULKAN_HPP_NAMESPACE::AabbPositionsKHR14456     AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT
14457     {
14458       maxZ = maxZ_;
14459       return *this;
14460     }
14461 
14462 
operator VkAabbPositionsKHR const&VULKAN_HPP_NAMESPACE::AabbPositionsKHR14463     operator VkAabbPositionsKHR const&() const VULKAN_HPP_NOEXCEPT
14464     {
14465       return *reinterpret_cast<const VkAabbPositionsKHR*>( this );
14466     }
14467 
operator VkAabbPositionsKHR&VULKAN_HPP_NAMESPACE::AabbPositionsKHR14468     operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT
14469     {
14470       return *reinterpret_cast<VkAabbPositionsKHR*>( this );
14471     }
14472 
14473 
14474 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14475     auto operator<=>( AabbPositionsKHR const& ) const = default;
14476 #else
operator ==VULKAN_HPP_NAMESPACE::AabbPositionsKHR14477     bool operator==( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
14478     {
14479       return ( minX == rhs.minX )
14480           && ( minY == rhs.minY )
14481           && ( minZ == rhs.minZ )
14482           && ( maxX == rhs.maxX )
14483           && ( maxY == rhs.maxY )
14484           && ( maxZ == rhs.maxZ );
14485     }
14486 
operator !=VULKAN_HPP_NAMESPACE::AabbPositionsKHR14487     bool operator!=( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
14488     {
14489       return !operator==( rhs );
14490     }
14491 #endif
14492 
14493 
14494 
14495   public:
14496     float minX = {};
14497     float minY = {};
14498     float minZ = {};
14499     float maxX = {};
14500     float maxY = {};
14501     float maxZ = {};
14502 
14503   };
14504   static_assert( sizeof( AabbPositionsKHR ) == sizeof( VkAabbPositionsKHR ), "struct and wrapper have different size!" );
14505   static_assert( std::is_standard_layout<AabbPositionsKHR>::value, "struct wrapper is not a standard layout!" );
14506   using AabbPositionsNV = AabbPositionsKHR;
14507 
14508   class AccelerationStructureKHR
14509   {
14510   public:
14511     using CType = VkAccelerationStructureKHR;
14512 
14513     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR;
14514     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
14515 
14516   public:
AccelerationStructureKHR()14517     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() VULKAN_HPP_NOEXCEPT
14518       : m_accelerationStructureKHR(VK_NULL_HANDLE)
14519     {}
14520 
AccelerationStructureKHR(std::nullptr_t)14521     VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14522       : m_accelerationStructureKHR(VK_NULL_HANDLE)
14523     {}
14524 
AccelerationStructureKHR(VkAccelerationStructureKHR accelerationStructureKHR)14525     VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT
14526       : m_accelerationStructureKHR( accelerationStructureKHR )
14527     {}
14528 
14529 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkAccelerationStructureKHR accelerationStructureKHR)14530     AccelerationStructureKHR & operator=(VkAccelerationStructureKHR accelerationStructureKHR) VULKAN_HPP_NOEXCEPT
14531     {
14532       m_accelerationStructureKHR = accelerationStructureKHR;
14533       return *this;
14534     }
14535 #endif
14536 
operator =(std::nullptr_t)14537     AccelerationStructureKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
14538     {
14539       m_accelerationStructureKHR = VK_NULL_HANDLE;
14540       return *this;
14541     }
14542 
14543 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
14544     auto operator<=>( AccelerationStructureKHR const& ) const = default;
14545 #else
operator ==(AccelerationStructureKHR const & rhs) const14546     bool operator==( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14547     {
14548       return m_accelerationStructureKHR == rhs.m_accelerationStructureKHR;
14549     }
14550 
operator !=(AccelerationStructureKHR const & rhs) const14551     bool operator!=(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14552     {
14553       return m_accelerationStructureKHR != rhs.m_accelerationStructureKHR;
14554     }
14555 
operator <(AccelerationStructureKHR const & rhs) const14556     bool operator<(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
14557     {
14558       return m_accelerationStructureKHR < rhs.m_accelerationStructureKHR;
14559     }
14560 #endif
14561 
operator VkAccelerationStructureKHR() const14562     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureKHR() const VULKAN_HPP_NOEXCEPT
14563     {
14564       return m_accelerationStructureKHR;
14565     }
14566 
operator bool() const14567     explicit operator bool() const VULKAN_HPP_NOEXCEPT
14568     {
14569       return m_accelerationStructureKHR != VK_NULL_HANDLE;
14570     }
14571 
operator !() const14572     bool operator!() const VULKAN_HPP_NOEXCEPT
14573     {
14574       return m_accelerationStructureKHR == VK_NULL_HANDLE;
14575     }
14576 
14577   private:
14578     VkAccelerationStructureKHR m_accelerationStructureKHR;
14579   };
14580   static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR ) == sizeof( VkAccelerationStructureKHR ), "handle and wrapper have different size!" );
14581 
14582   template <>
14583   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eAccelerationStructureKHR>
14584   {
14585     using type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
14586   };
14587 
14588   template <>
14589   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR>
14590   {
14591     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
14592   };
14593 
14594 
14595   template <>
14596   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR>
14597   {
14598     using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR;
14599   };
14600 
14601 
14602   template <>
14603   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
14604   {
14605     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
14606   };
14607   using AccelerationStructureNV = AccelerationStructureKHR;
14608 
14609 #ifdef VK_ENABLE_BETA_EXTENSIONS
14610   union DeviceOrHostAddressConstKHR
14611   {
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)14612     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const& rhs ) VULKAN_HPP_NOEXCEPT
14613     {
14614       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
14615     }
14616 
DeviceOrHostAddressConstKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )14617     DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
14618       : deviceAddress( deviceAddress_ )
14619     {}
14620 
DeviceOrHostAddressConstKHR(const void * hostAddress_)14621     DeviceOrHostAddressConstKHR( const void* hostAddress_ )
14622       : hostAddress( hostAddress_ )
14623     {}
14624 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)14625     DeviceOrHostAddressConstKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
14626     {
14627       deviceAddress = deviceAddress_;
14628       return *this;
14629     }
14630 
setHostAddress(const void * hostAddress_)14631     DeviceOrHostAddressConstKHR & setHostAddress( const void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
14632     {
14633       hostAddress = hostAddress_;
14634       return *this;
14635     }
14636 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs)14637     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14638     {
14639       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) );
14640       return *this;
14641     }
14642 
operator VkDeviceOrHostAddressConstKHR const&() const14643     operator VkDeviceOrHostAddressConstKHR const&() const
14644     {
14645       return *reinterpret_cast<const VkDeviceOrHostAddressConstKHR*>(this);
14646     }
14647 
operator VkDeviceOrHostAddressConstKHR&()14648     operator VkDeviceOrHostAddressConstKHR &()
14649     {
14650       return *reinterpret_cast<VkDeviceOrHostAddressConstKHR*>(this);
14651     }
14652 
14653 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
14654     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
14655     const void* hostAddress;
14656 #else
14657     VkDeviceAddress deviceAddress;
14658     const void* hostAddress;
14659 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
14660   };
14661 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14662 
14663 #ifdef VK_ENABLE_BETA_EXTENSIONS
14664   struct AccelerationStructureGeometryTrianglesDataKHR
14665   {
14666     static const bool allowDuplicate = false;
14667     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
14668 
14669 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14670     AccelerationStructureGeometryTrianglesDataKHR(VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {}) VULKAN_HPP_NOEXCEPT
14671     : vertexFormat( vertexFormat_ ), vertexData( vertexData_ ), vertexStride( vertexStride_ ), indexType( indexType_ ), indexData( indexData_ ), transformData( transformData_ )
14672     {}
14673 
14674     AccelerationStructureGeometryTrianglesDataKHR( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14675 
AccelerationStructureGeometryTrianglesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14676     AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14677     {
14678       *this = rhs;
14679     }
14680 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14681 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14682     AccelerationStructureGeometryTrianglesDataKHR & operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14683     {
14684       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const *>( &rhs );
14685       return *this;
14686     }
14687 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14688     AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14689     {
14690       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryTrianglesDataKHR ) );
14691       return *this;
14692     }
14693 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14694     AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14695     {
14696       pNext = pNext_;
14697       return *this;
14698     }
14699 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14700     AccelerationStructureGeometryTrianglesDataKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
14701     {
14702       vertexFormat = vertexFormat_;
14703       return *this;
14704     }
14705 
setVertexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14706     AccelerationStructureGeometryTrianglesDataKHR & setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
14707     {
14708       vertexData = vertexData_;
14709       return *this;
14710     }
14711 
setVertexStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14712     AccelerationStructureGeometryTrianglesDataKHR & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
14713     {
14714       vertexStride = vertexStride_;
14715       return *this;
14716     }
14717 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14718     AccelerationStructureGeometryTrianglesDataKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
14719     {
14720       indexType = indexType_;
14721       return *this;
14722     }
14723 
setIndexDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14724     AccelerationStructureGeometryTrianglesDataKHR & setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT
14725     {
14726       indexData = indexData_;
14727       return *this;
14728     }
14729 
setTransformDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14730     AccelerationStructureGeometryTrianglesDataKHR & setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT
14731     {
14732       transformData = transformData_;
14733       return *this;
14734     }
14735 
14736 
operator VkAccelerationStructureGeometryTrianglesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14737     operator VkAccelerationStructureGeometryTrianglesDataKHR const&() const VULKAN_HPP_NOEXCEPT
14738     {
14739       return *reinterpret_cast<const VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
14740     }
14741 
operator VkAccelerationStructureGeometryTrianglesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR14742     operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT
14743     {
14744       return *reinterpret_cast<VkAccelerationStructureGeometryTrianglesDataKHR*>( this );
14745     }
14746 
14747 
14748 
14749 
14750   public:
14751     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
14752     const void* pNext = {};
14753     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
14754     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
14755     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
14756     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
14757     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {};
14758     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {};
14759 
14760   };
14761   static_assert( sizeof( AccelerationStructureGeometryTrianglesDataKHR ) == sizeof( VkAccelerationStructureGeometryTrianglesDataKHR ), "struct and wrapper have different size!" );
14762   static_assert( std::is_standard_layout<AccelerationStructureGeometryTrianglesDataKHR>::value, "struct wrapper is not a standard layout!" );
14763 
14764   template <>
14765   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryTrianglesDataKHR>
14766   {
14767     using Type = AccelerationStructureGeometryTrianglesDataKHR;
14768   };
14769 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14770 
14771 #ifdef VK_ENABLE_BETA_EXTENSIONS
14772   struct AccelerationStructureGeometryAabbsDataKHR
14773   {
14774     static const bool allowDuplicate = false;
14775     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
14776 
14777 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14778     AccelerationStructureGeometryAabbsDataKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}) VULKAN_HPP_NOEXCEPT
14779     : data( data_ ), stride( stride_ )
14780     {}
14781 
14782     AccelerationStructureGeometryAabbsDataKHR( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14783 
AccelerationStructureGeometryAabbsDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14784     AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14785     {
14786       *this = rhs;
14787     }
14788 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14789 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14790     AccelerationStructureGeometryAabbsDataKHR & operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14791     {
14792       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const *>( &rhs );
14793       return *this;
14794     }
14795 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14796     AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14797     {
14798       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryAabbsDataKHR ) );
14799       return *this;
14800     }
14801 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14802     AccelerationStructureGeometryAabbsDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14803     {
14804       pNext = pNext_;
14805       return *this;
14806     }
14807 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14808     AccelerationStructureGeometryAabbsDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
14809     {
14810       data = data_;
14811       return *this;
14812     }
14813 
setStrideVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14814     AccelerationStructureGeometryAabbsDataKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
14815     {
14816       stride = stride_;
14817       return *this;
14818     }
14819 
14820 
operator VkAccelerationStructureGeometryAabbsDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14821     operator VkAccelerationStructureGeometryAabbsDataKHR const&() const VULKAN_HPP_NOEXCEPT
14822     {
14823       return *reinterpret_cast<const VkAccelerationStructureGeometryAabbsDataKHR*>( this );
14824     }
14825 
operator VkAccelerationStructureGeometryAabbsDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR14826     operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT
14827     {
14828       return *reinterpret_cast<VkAccelerationStructureGeometryAabbsDataKHR*>( this );
14829     }
14830 
14831 
14832 
14833 
14834   public:
14835     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
14836     const void* pNext = {};
14837     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
14838     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
14839 
14840   };
14841   static_assert( sizeof( AccelerationStructureGeometryAabbsDataKHR ) == sizeof( VkAccelerationStructureGeometryAabbsDataKHR ), "struct and wrapper have different size!" );
14842   static_assert( std::is_standard_layout<AccelerationStructureGeometryAabbsDataKHR>::value, "struct wrapper is not a standard layout!" );
14843 
14844   template <>
14845   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryAabbsDataKHR>
14846   {
14847     using Type = AccelerationStructureGeometryAabbsDataKHR;
14848   };
14849 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14850 
14851 #ifdef VK_ENABLE_BETA_EXTENSIONS
14852   struct AccelerationStructureGeometryInstancesDataKHR
14853   {
14854     static const bool allowDuplicate = false;
14855     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
14856 
14857 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14858     AccelerationStructureGeometryInstancesDataKHR(VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}) VULKAN_HPP_NOEXCEPT
14859     : arrayOfPointers( arrayOfPointers_ ), data( data_ )
14860     {}
14861 
14862     AccelerationStructureGeometryInstancesDataKHR( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14863 
AccelerationStructureGeometryInstancesDataKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14864     AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14865     {
14866       *this = rhs;
14867     }
14868 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
14869 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14870     AccelerationStructureGeometryInstancesDataKHR & operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14871     {
14872       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const *>( &rhs );
14873       return *this;
14874     }
14875 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14876     AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14877     {
14878       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryInstancesDataKHR ) );
14879       return *this;
14880     }
14881 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14882     AccelerationStructureGeometryInstancesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
14883     {
14884       pNext = pNext_;
14885       return *this;
14886     }
14887 
setArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14888     AccelerationStructureGeometryInstancesDataKHR & setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
14889     {
14890       arrayOfPointers = arrayOfPointers_;
14891       return *this;
14892     }
14893 
setDataVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14894     AccelerationStructureGeometryInstancesDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
14895     {
14896       data = data_;
14897       return *this;
14898     }
14899 
14900 
operator VkAccelerationStructureGeometryInstancesDataKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14901     operator VkAccelerationStructureGeometryInstancesDataKHR const&() const VULKAN_HPP_NOEXCEPT
14902     {
14903       return *reinterpret_cast<const VkAccelerationStructureGeometryInstancesDataKHR*>( this );
14904     }
14905 
operator VkAccelerationStructureGeometryInstancesDataKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR14906     operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT
14907     {
14908       return *reinterpret_cast<VkAccelerationStructureGeometryInstancesDataKHR*>( this );
14909     }
14910 
14911 
14912 
14913 
14914   public:
14915     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
14916     const void* pNext = {};
14917     VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {};
14918     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
14919 
14920   };
14921   static_assert( sizeof( AccelerationStructureGeometryInstancesDataKHR ) == sizeof( VkAccelerationStructureGeometryInstancesDataKHR ), "struct and wrapper have different size!" );
14922   static_assert( std::is_standard_layout<AccelerationStructureGeometryInstancesDataKHR>::value, "struct wrapper is not a standard layout!" );
14923 
14924   template <>
14925   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryInstancesDataKHR>
14926   {
14927     using Type = AccelerationStructureGeometryInstancesDataKHR;
14928   };
14929 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14930 
14931 #ifdef VK_ENABLE_BETA_EXTENSIONS
14932   union AccelerationStructureGeometryDataKHR
14933   {
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)14934     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const& rhs ) VULKAN_HPP_NOEXCEPT
14935     {
14936       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
14937     }
14938 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_={} )14939     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} )
14940       : triangles( triangles_ )
14941     {}
14942 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_)14943     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ )
14944       : aabbs( aabbs_ )
14945     {}
14946 
AccelerationStructureGeometryDataKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_)14947     AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ )
14948       : instances( instances_ )
14949     {}
14950 
setTriangles(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_)14951     AccelerationStructureGeometryDataKHR & setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
14952     {
14953       triangles = triangles_;
14954       return *this;
14955     }
14956 
setAabbs(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_)14957     AccelerationStructureGeometryDataKHR & setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT
14958     {
14959       aabbs = aabbs_;
14960       return *this;
14961     }
14962 
setInstances(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_)14963     AccelerationStructureGeometryDataKHR & setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT
14964     {
14965       instances = instances_;
14966       return *this;
14967     }
14968 
operator =(VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs)14969     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
14970     {
14971       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) );
14972       return *this;
14973     }
14974 
operator VkAccelerationStructureGeometryDataKHR const&() const14975     operator VkAccelerationStructureGeometryDataKHR const&() const
14976     {
14977       return *reinterpret_cast<const VkAccelerationStructureGeometryDataKHR*>(this);
14978     }
14979 
operator VkAccelerationStructureGeometryDataKHR&()14980     operator VkAccelerationStructureGeometryDataKHR &()
14981     {
14982       return *reinterpret_cast<VkAccelerationStructureGeometryDataKHR*>(this);
14983     }
14984 
14985 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
14986     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles;
14987     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs;
14988     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances;
14989 #else
14990     VkAccelerationStructureGeometryTrianglesDataKHR triangles;
14991     VkAccelerationStructureGeometryAabbsDataKHR aabbs;
14992     VkAccelerationStructureGeometryInstancesDataKHR instances;
14993 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
14994   };
14995 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14996 
14997 #ifdef VK_ENABLE_BETA_EXTENSIONS
14998   struct AccelerationStructureGeometryKHR
14999   {
15000     static const bool allowDuplicate = false;
15001     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR;
15002 
15003 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15004     AccelerationStructureGeometryKHR(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}) VULKAN_HPP_NOEXCEPT
15005     : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
15006     {}
15007 
15008     AccelerationStructureGeometryKHR( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15009 
AccelerationStructureGeometryKHRVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15010     AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15011     {
15012       *this = rhs;
15013     }
15014 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15015 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15016     AccelerationStructureGeometryKHR & operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15017     {
15018       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR const *>( &rhs );
15019       return *this;
15020     }
15021 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15022     AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15023     {
15024       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureGeometryKHR ) );
15025       return *this;
15026     }
15027 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15028     AccelerationStructureGeometryKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15029     {
15030       pNext = pNext_;
15031       return *this;
15032     }
15033 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15034     AccelerationStructureGeometryKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
15035     {
15036       geometryType = geometryType_;
15037       return *this;
15038     }
15039 
setGeometryVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15040     AccelerationStructureGeometryKHR & setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT
15041     {
15042       geometry = geometry_;
15043       return *this;
15044     }
15045 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15046     AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
15047     {
15048       flags = flags_;
15049       return *this;
15050     }
15051 
15052 
operator VkAccelerationStructureGeometryKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15053     operator VkAccelerationStructureGeometryKHR const&() const VULKAN_HPP_NOEXCEPT
15054     {
15055       return *reinterpret_cast<const VkAccelerationStructureGeometryKHR*>( this );
15056     }
15057 
operator VkAccelerationStructureGeometryKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR15058     operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT
15059     {
15060       return *reinterpret_cast<VkAccelerationStructureGeometryKHR*>( this );
15061     }
15062 
15063 
15064 
15065 
15066   public:
15067     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR;
15068     const void* pNext = {};
15069     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
15070     VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {};
15071     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
15072 
15073   };
15074   static_assert( sizeof( AccelerationStructureGeometryKHR ) == sizeof( VkAccelerationStructureGeometryKHR ), "struct and wrapper have different size!" );
15075   static_assert( std::is_standard_layout<AccelerationStructureGeometryKHR>::value, "struct wrapper is not a standard layout!" );
15076 
15077   template <>
15078   struct CppType<StructureType, StructureType::eAccelerationStructureGeometryKHR>
15079   {
15080     using Type = AccelerationStructureGeometryKHR;
15081   };
15082 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15083 
15084 #ifdef VK_ENABLE_BETA_EXTENSIONS
15085   union DeviceOrHostAddressKHR
15086   {
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)15087     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const& rhs ) VULKAN_HPP_NOEXCEPT
15088     {
15089       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
15090     }
15091 
DeviceOrHostAddressKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_={} )15092     DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
15093       : deviceAddress( deviceAddress_ )
15094     {}
15095 
DeviceOrHostAddressKHR(void * hostAddress_)15096     DeviceOrHostAddressKHR( void* hostAddress_ )
15097       : hostAddress( hostAddress_ )
15098     {}
15099 
setDeviceAddress(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_)15100     DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
15101     {
15102       deviceAddress = deviceAddress_;
15103       return *this;
15104     }
15105 
setHostAddress(void * hostAddress_)15106     DeviceOrHostAddressKHR & setHostAddress( void* hostAddress_ ) VULKAN_HPP_NOEXCEPT
15107     {
15108       hostAddress = hostAddress_;
15109       return *this;
15110     }
15111 
operator =(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs)15112     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15113     {
15114       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) );
15115       return *this;
15116     }
15117 
operator VkDeviceOrHostAddressKHR const&() const15118     operator VkDeviceOrHostAddressKHR const&() const
15119     {
15120       return *reinterpret_cast<const VkDeviceOrHostAddressKHR*>(this);
15121     }
15122 
operator VkDeviceOrHostAddressKHR&()15123     operator VkDeviceOrHostAddressKHR &()
15124     {
15125       return *reinterpret_cast<VkDeviceOrHostAddressKHR*>(this);
15126     }
15127 
15128 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
15129     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
15130     void* hostAddress;
15131 #else
15132     VkDeviceAddress deviceAddress;
15133     void* hostAddress;
15134 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
15135   };
15136 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15137 
15138 #ifdef VK_ENABLE_BETA_EXTENSIONS
15139   struct AccelerationStructureBuildGeometryInfoKHR
15140   {
15141     static const bool allowDuplicate = false;
15142     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
15143 
15144 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15145     AccelerationStructureBuildGeometryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 update_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {}) VULKAN_HPP_NOEXCEPT
15146     : type( type_ ), flags( flags_ ), update( update_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryArrayOfPointers( geometryArrayOfPointers_ ), geometryCount( geometryCount_ ), ppGeometries( ppGeometries_ ), scratchData( scratchData_ )
15147     {}
15148 
15149     AccelerationStructureBuildGeometryInfoKHR( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15150 
AccelerationStructureBuildGeometryInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15151     AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15152     {
15153       *this = rhs;
15154     }
15155 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15156 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15157     AccelerationStructureBuildGeometryInfoKHR & operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15158     {
15159       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR const *>( &rhs );
15160       return *this;
15161     }
15162 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15163     AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15164     {
15165       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureBuildGeometryInfoKHR ) );
15166       return *this;
15167     }
15168 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15169     AccelerationStructureBuildGeometryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15170     {
15171       pNext = pNext_;
15172       return *this;
15173     }
15174 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15175     AccelerationStructureBuildGeometryInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
15176     {
15177       type = type_;
15178       return *this;
15179     }
15180 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15181     AccelerationStructureBuildGeometryInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
15182     {
15183       flags = flags_;
15184       return *this;
15185     }
15186 
setUpdateVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15187     AccelerationStructureBuildGeometryInfoKHR & setUpdate( VULKAN_HPP_NAMESPACE::Bool32 update_ ) VULKAN_HPP_NOEXCEPT
15188     {
15189       update = update_;
15190       return *this;
15191     }
15192 
setSrcAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15193     AccelerationStructureBuildGeometryInfoKHR & setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
15194     {
15195       srcAccelerationStructure = srcAccelerationStructure_;
15196       return *this;
15197     }
15198 
setDstAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15199     AccelerationStructureBuildGeometryInfoKHR & setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
15200     {
15201       dstAccelerationStructure = dstAccelerationStructure_;
15202       return *this;
15203     }
15204 
setGeometryArrayOfPointersVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15205     AccelerationStructureBuildGeometryInfoKHR & setGeometryArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
15206     {
15207       geometryArrayOfPointers = geometryArrayOfPointers_;
15208       return *this;
15209     }
15210 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15211     AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
15212     {
15213       geometryCount = geometryCount_;
15214       return *this;
15215     }
15216 
setPpGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15217     AccelerationStructureBuildGeometryInfoKHR & setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT
15218     {
15219       ppGeometries = ppGeometries_;
15220       return *this;
15221     }
15222 
setScratchDataVULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15223     AccelerationStructureBuildGeometryInfoKHR & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
15224     {
15225       scratchData = scratchData_;
15226       return *this;
15227     }
15228 
15229 
operator VkAccelerationStructureBuildGeometryInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15230     operator VkAccelerationStructureBuildGeometryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15231     {
15232       return *reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR*>( this );
15233     }
15234 
operator VkAccelerationStructureBuildGeometryInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR15235     operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT
15236     {
15237       return *reinterpret_cast<VkAccelerationStructureBuildGeometryInfoKHR*>( this );
15238     }
15239 
15240 
15241 
15242 
15243   public:
15244     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
15245     const void* pNext = {};
15246     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
15247     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
15248     VULKAN_HPP_NAMESPACE::Bool32 update = {};
15249     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {};
15250     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {};
15251     VULKAN_HPP_NAMESPACE::Bool32 geometryArrayOfPointers = {};
15252     uint32_t geometryCount = {};
15253     const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries = {};
15254     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {};
15255 
15256   };
15257   static_assert( sizeof( AccelerationStructureBuildGeometryInfoKHR ) == sizeof( VkAccelerationStructureBuildGeometryInfoKHR ), "struct and wrapper have different size!" );
15258   static_assert( std::is_standard_layout<AccelerationStructureBuildGeometryInfoKHR>::value, "struct wrapper is not a standard layout!" );
15259 
15260   template <>
15261   struct CppType<StructureType, StructureType::eAccelerationStructureBuildGeometryInfoKHR>
15262   {
15263     using Type = AccelerationStructureBuildGeometryInfoKHR;
15264   };
15265 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15266 
15267 #ifdef VK_ENABLE_BETA_EXTENSIONS
15268   struct AccelerationStructureBuildOffsetInfoKHR
15269   {
15270 
15271 
15272 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureBuildOffsetInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15273     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildOffsetInfoKHR(uint32_t primitiveCount_ = {}, uint32_t primitiveOffset_ = {}, uint32_t firstVertex_ = {}, uint32_t transformOffset_ = {}) VULKAN_HPP_NOEXCEPT
15274     : primitiveCount( primitiveCount_ ), primitiveOffset( primitiveOffset_ ), firstVertex( firstVertex_ ), transformOffset( transformOffset_ )
15275     {}
15276 
15277     VULKAN_HPP_CONSTEXPR AccelerationStructureBuildOffsetInfoKHR( AccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15278 
AccelerationStructureBuildOffsetInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15279     AccelerationStructureBuildOffsetInfoKHR( VkAccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15280     {
15281       *this = rhs;
15282     }
15283 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15284 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15285     AccelerationStructureBuildOffsetInfoKHR & operator=( VkAccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15286     {
15287       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR const *>( &rhs );
15288       return *this;
15289     }
15290 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15291     AccelerationStructureBuildOffsetInfoKHR & operator=( AccelerationStructureBuildOffsetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15292     {
15293       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureBuildOffsetInfoKHR ) );
15294       return *this;
15295     }
15296 
setPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15297     AccelerationStructureBuildOffsetInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT
15298     {
15299       primitiveCount = primitiveCount_;
15300       return *this;
15301     }
15302 
setPrimitiveOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15303     AccelerationStructureBuildOffsetInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT
15304     {
15305       primitiveOffset = primitiveOffset_;
15306       return *this;
15307     }
15308 
setFirstVertexVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15309     AccelerationStructureBuildOffsetInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
15310     {
15311       firstVertex = firstVertex_;
15312       return *this;
15313     }
15314 
setTransformOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15315     AccelerationStructureBuildOffsetInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT
15316     {
15317       transformOffset = transformOffset_;
15318       return *this;
15319     }
15320 
15321 
operator VkAccelerationStructureBuildOffsetInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15322     operator VkAccelerationStructureBuildOffsetInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15323     {
15324       return *reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR*>( this );
15325     }
15326 
operator VkAccelerationStructureBuildOffsetInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15327     operator VkAccelerationStructureBuildOffsetInfoKHR &() VULKAN_HPP_NOEXCEPT
15328     {
15329       return *reinterpret_cast<VkAccelerationStructureBuildOffsetInfoKHR*>( this );
15330     }
15331 
15332 
15333 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15334     auto operator<=>( AccelerationStructureBuildOffsetInfoKHR const& ) const = default;
15335 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15336     bool operator==( AccelerationStructureBuildOffsetInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15337     {
15338       return ( primitiveCount == rhs.primitiveCount )
15339           && ( primitiveOffset == rhs.primitiveOffset )
15340           && ( firstVertex == rhs.firstVertex )
15341           && ( transformOffset == rhs.transformOffset );
15342     }
15343 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR15344     bool operator!=( AccelerationStructureBuildOffsetInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15345     {
15346       return !operator==( rhs );
15347     }
15348 #endif
15349 
15350 
15351 
15352   public:
15353     uint32_t primitiveCount = {};
15354     uint32_t primitiveOffset = {};
15355     uint32_t firstVertex = {};
15356     uint32_t transformOffset = {};
15357 
15358   };
15359   static_assert( sizeof( AccelerationStructureBuildOffsetInfoKHR ) == sizeof( VkAccelerationStructureBuildOffsetInfoKHR ), "struct and wrapper have different size!" );
15360   static_assert( std::is_standard_layout<AccelerationStructureBuildOffsetInfoKHR>::value, "struct wrapper is not a standard layout!" );
15361 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15362 
15363 #ifdef VK_ENABLE_BETA_EXTENSIONS
15364   struct AccelerationStructureCreateGeometryTypeInfoKHR
15365   {
15366     static const bool allowDuplicate = false;
15367     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR;
15368 
15369 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateGeometryTypeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15370     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateGeometryTypeInfoKHR(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, uint32_t maxPrimitiveCount_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, uint32_t maxVertexCount_ = {}, VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms_ = {}) VULKAN_HPP_NOEXCEPT
15371     : geometryType( geometryType_ ), maxPrimitiveCount( maxPrimitiveCount_ ), indexType( indexType_ ), maxVertexCount( maxVertexCount_ ), vertexFormat( vertexFormat_ ), allowsTransforms( allowsTransforms_ )
15372     {}
15373 
15374     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateGeometryTypeInfoKHR( AccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15375 
AccelerationStructureCreateGeometryTypeInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15376     AccelerationStructureCreateGeometryTypeInfoKHR( VkAccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15377     {
15378       *this = rhs;
15379     }
15380 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15381 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15382     AccelerationStructureCreateGeometryTypeInfoKHR & operator=( VkAccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15383     {
15384       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR const *>( &rhs );
15385       return *this;
15386     }
15387 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15388     AccelerationStructureCreateGeometryTypeInfoKHR & operator=( AccelerationStructureCreateGeometryTypeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15389     {
15390       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureCreateGeometryTypeInfoKHR ) );
15391       return *this;
15392     }
15393 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15394     AccelerationStructureCreateGeometryTypeInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15395     {
15396       pNext = pNext_;
15397       return *this;
15398     }
15399 
setGeometryTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15400     AccelerationStructureCreateGeometryTypeInfoKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
15401     {
15402       geometryType = geometryType_;
15403       return *this;
15404     }
15405 
setMaxPrimitiveCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15406     AccelerationStructureCreateGeometryTypeInfoKHR & setMaxPrimitiveCount( uint32_t maxPrimitiveCount_ ) VULKAN_HPP_NOEXCEPT
15407     {
15408       maxPrimitiveCount = maxPrimitiveCount_;
15409       return *this;
15410     }
15411 
setIndexTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15412     AccelerationStructureCreateGeometryTypeInfoKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
15413     {
15414       indexType = indexType_;
15415       return *this;
15416     }
15417 
setMaxVertexCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15418     AccelerationStructureCreateGeometryTypeInfoKHR & setMaxVertexCount( uint32_t maxVertexCount_ ) VULKAN_HPP_NOEXCEPT
15419     {
15420       maxVertexCount = maxVertexCount_;
15421       return *this;
15422     }
15423 
setVertexFormatVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15424     AccelerationStructureCreateGeometryTypeInfoKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
15425     {
15426       vertexFormat = vertexFormat_;
15427       return *this;
15428     }
15429 
setAllowsTransformsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15430     AccelerationStructureCreateGeometryTypeInfoKHR & setAllowsTransforms( VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms_ ) VULKAN_HPP_NOEXCEPT
15431     {
15432       allowsTransforms = allowsTransforms_;
15433       return *this;
15434     }
15435 
15436 
operator VkAccelerationStructureCreateGeometryTypeInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15437     operator VkAccelerationStructureCreateGeometryTypeInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15438     {
15439       return *reinterpret_cast<const VkAccelerationStructureCreateGeometryTypeInfoKHR*>( this );
15440     }
15441 
operator VkAccelerationStructureCreateGeometryTypeInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15442     operator VkAccelerationStructureCreateGeometryTypeInfoKHR &() VULKAN_HPP_NOEXCEPT
15443     {
15444       return *reinterpret_cast<VkAccelerationStructureCreateGeometryTypeInfoKHR*>( this );
15445     }
15446 
15447 
15448 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15449     auto operator<=>( AccelerationStructureCreateGeometryTypeInfoKHR const& ) const = default;
15450 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15451     bool operator==( AccelerationStructureCreateGeometryTypeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15452     {
15453       return ( sType == rhs.sType )
15454           && ( pNext == rhs.pNext )
15455           && ( geometryType == rhs.geometryType )
15456           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
15457           && ( indexType == rhs.indexType )
15458           && ( maxVertexCount == rhs.maxVertexCount )
15459           && ( vertexFormat == rhs.vertexFormat )
15460           && ( allowsTransforms == rhs.allowsTransforms );
15461     }
15462 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR15463     bool operator!=( AccelerationStructureCreateGeometryTypeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15464     {
15465       return !operator==( rhs );
15466     }
15467 #endif
15468 
15469 
15470 
15471   public:
15472     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR;
15473     const void* pNext = {};
15474     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
15475     uint32_t maxPrimitiveCount = {};
15476     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
15477     uint32_t maxVertexCount = {};
15478     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
15479     VULKAN_HPP_NAMESPACE::Bool32 allowsTransforms = {};
15480 
15481   };
15482   static_assert( sizeof( AccelerationStructureCreateGeometryTypeInfoKHR ) == sizeof( VkAccelerationStructureCreateGeometryTypeInfoKHR ), "struct and wrapper have different size!" );
15483   static_assert( std::is_standard_layout<AccelerationStructureCreateGeometryTypeInfoKHR>::value, "struct wrapper is not a standard layout!" );
15484 
15485   template <>
15486   struct CppType<StructureType, StructureType::eAccelerationStructureCreateGeometryTypeInfoKHR>
15487   {
15488     using Type = AccelerationStructureCreateGeometryTypeInfoKHR;
15489   };
15490 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15491 
15492 #ifdef VK_ENABLE_BETA_EXTENSIONS
15493   struct AccelerationStructureCreateInfoKHR
15494   {
15495     static const bool allowDuplicate = false;
15496     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR;
15497 
15498 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15499     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR(VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {}, uint32_t maxGeometryCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos_ = {}, VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT
15500     : compactedSize( compactedSize_ ), type( type_ ), flags( flags_ ), maxGeometryCount( maxGeometryCount_ ), pGeometryInfos( pGeometryInfos_ ), deviceAddress( deviceAddress_ )
15501     {}
15502 
15503     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15504 
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15505     AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15506     {
15507       *this = rhs;
15508     }
15509 
15510 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
AccelerationStructureCreateInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15511     AccelerationStructureCreateInfoKHR( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR> const & geometryInfos_, VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} )
15512     : compactedSize( compactedSize_ ), type( type_ ), flags( flags_ ), maxGeometryCount( static_cast<uint32_t>( geometryInfos_.size() ) ), pGeometryInfos( geometryInfos_.data() ), deviceAddress( deviceAddress_ )
15513     {}
15514 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
15515 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15516 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15517     AccelerationStructureCreateInfoKHR & operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15518     {
15519       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const *>( &rhs );
15520       return *this;
15521     }
15522 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15523     AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
15524     {
15525       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureCreateInfoKHR ) );
15526       return *this;
15527     }
15528 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15529     AccelerationStructureCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15530     {
15531       pNext = pNext_;
15532       return *this;
15533     }
15534 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15535     AccelerationStructureCreateInfoKHR & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
15536     {
15537       compactedSize = compactedSize_;
15538       return *this;
15539     }
15540 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15541     AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
15542     {
15543       type = type_;
15544       return *this;
15545     }
15546 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15547     AccelerationStructureCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
15548     {
15549       flags = flags_;
15550       return *this;
15551     }
15552 
setMaxGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15553     AccelerationStructureCreateInfoKHR & setMaxGeometryCount( uint32_t maxGeometryCount_ ) VULKAN_HPP_NOEXCEPT
15554     {
15555       maxGeometryCount = maxGeometryCount_;
15556       return *this;
15557     }
15558 
setPGeometryInfosVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15559     AccelerationStructureCreateInfoKHR & setPGeometryInfos( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos_ ) VULKAN_HPP_NOEXCEPT
15560     {
15561       pGeometryInfos = pGeometryInfos_;
15562       return *this;
15563     }
15564 
15565 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGeometryInfosVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15566     AccelerationStructureCreateInfoKHR & setGeometryInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR> const & geometryInfos_ ) VULKAN_HPP_NOEXCEPT
15567     {
15568       maxGeometryCount = static_cast<uint32_t>( geometryInfos_.size() );
15569       pGeometryInfos = geometryInfos_.data();
15570       return *this;
15571     }
15572 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
15573 
setDeviceAddressVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15574     AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
15575     {
15576       deviceAddress = deviceAddress_;
15577       return *this;
15578     }
15579 
15580 
operator VkAccelerationStructureCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15581     operator VkAccelerationStructureCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
15582     {
15583       return *reinterpret_cast<const VkAccelerationStructureCreateInfoKHR*>( this );
15584     }
15585 
operator VkAccelerationStructureCreateInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15586     operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
15587     {
15588       return *reinterpret_cast<VkAccelerationStructureCreateInfoKHR*>( this );
15589     }
15590 
15591 
15592 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15593     auto operator<=>( AccelerationStructureCreateInfoKHR const& ) const = default;
15594 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15595     bool operator==( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15596     {
15597       return ( sType == rhs.sType )
15598           && ( pNext == rhs.pNext )
15599           && ( compactedSize == rhs.compactedSize )
15600           && ( type == rhs.type )
15601           && ( flags == rhs.flags )
15602           && ( maxGeometryCount == rhs.maxGeometryCount )
15603           && ( pGeometryInfos == rhs.pGeometryInfos )
15604           && ( deviceAddress == rhs.deviceAddress );
15605     }
15606 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR15607     bool operator!=( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
15608     {
15609       return !operator==( rhs );
15610     }
15611 #endif
15612 
15613 
15614 
15615   public:
15616     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR;
15617     const void* pNext = {};
15618     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
15619     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
15620     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
15621     uint32_t maxGeometryCount = {};
15622     const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR* pGeometryInfos = {};
15623     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
15624 
15625   };
15626   static_assert( sizeof( AccelerationStructureCreateInfoKHR ) == sizeof( VkAccelerationStructureCreateInfoKHR ), "struct and wrapper have different size!" );
15627   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
15628 
15629   template <>
15630   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoKHR>
15631   {
15632     using Type = AccelerationStructureCreateInfoKHR;
15633   };
15634 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15635 
15636   class Buffer
15637   {
15638   public:
15639     using CType = VkBuffer;
15640 
15641     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer;
15642     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
15643 
15644   public:
Buffer()15645     VULKAN_HPP_CONSTEXPR Buffer() VULKAN_HPP_NOEXCEPT
15646       : m_buffer(VK_NULL_HANDLE)
15647     {}
15648 
Buffer(std::nullptr_t)15649     VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15650       : m_buffer(VK_NULL_HANDLE)
15651     {}
15652 
Buffer(VkBuffer buffer)15653     VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT
15654       : m_buffer( buffer )
15655     {}
15656 
15657 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBuffer buffer)15658     Buffer & operator=(VkBuffer buffer) VULKAN_HPP_NOEXCEPT
15659     {
15660       m_buffer = buffer;
15661       return *this;
15662     }
15663 #endif
15664 
operator =(std::nullptr_t)15665     Buffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
15666     {
15667       m_buffer = VK_NULL_HANDLE;
15668       return *this;
15669     }
15670 
15671 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15672     auto operator<=>( Buffer const& ) const = default;
15673 #else
operator ==(Buffer const & rhs) const15674     bool operator==( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15675     {
15676       return m_buffer == rhs.m_buffer;
15677     }
15678 
operator !=(Buffer const & rhs) const15679     bool operator!=(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15680     {
15681       return m_buffer != rhs.m_buffer;
15682     }
15683 
operator <(Buffer const & rhs) const15684     bool operator<(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT
15685     {
15686       return m_buffer < rhs.m_buffer;
15687     }
15688 #endif
15689 
operator VkBuffer() const15690     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const VULKAN_HPP_NOEXCEPT
15691     {
15692       return m_buffer;
15693     }
15694 
operator bool() const15695     explicit operator bool() const VULKAN_HPP_NOEXCEPT
15696     {
15697       return m_buffer != VK_NULL_HANDLE;
15698     }
15699 
operator !() const15700     bool operator!() const VULKAN_HPP_NOEXCEPT
15701     {
15702       return m_buffer == VK_NULL_HANDLE;
15703     }
15704 
15705   private:
15706     VkBuffer m_buffer;
15707   };
15708   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" );
15709 
15710   template <>
15711   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBuffer>
15712   {
15713     using type = VULKAN_HPP_NAMESPACE::Buffer;
15714   };
15715 
15716   template <>
15717   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eBuffer>
15718   {
15719     using Type = VULKAN_HPP_NAMESPACE::Buffer;
15720   };
15721 
15722 
15723   template <>
15724   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer>
15725   {
15726     using Type = VULKAN_HPP_NAMESPACE::Buffer;
15727   };
15728 
15729 
15730   template <>
15731   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Buffer>
15732   {
15733     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
15734   };
15735 
15736   struct GeometryTrianglesNV
15737   {
15738     static const bool allowDuplicate = false;
15739     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV;
15740 
15741 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15742     VULKAN_HPP_CONSTEXPR GeometryTrianglesNV(VULKAN_HPP_NAMESPACE::Buffer vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ = {}, uint32_t vertexCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Buffer indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ = {}, uint32_t indexCount_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::Buffer transformData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {}) VULKAN_HPP_NOEXCEPT
15743     : vertexData( vertexData_ ), vertexOffset( vertexOffset_ ), vertexCount( vertexCount_ ), vertexStride( vertexStride_ ), vertexFormat( vertexFormat_ ), indexData( indexData_ ), indexOffset( indexOffset_ ), indexCount( indexCount_ ), indexType( indexType_ ), transformData( transformData_ ), transformOffset( transformOffset_ )
15744     {}
15745 
15746     VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15747 
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15748     GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15749     {
15750       *this = rhs;
15751     }
15752 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15753 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15754     GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15755     {
15756       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const *>( &rhs );
15757       return *this;
15758     }
15759 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15760     GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
15761     {
15762       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryTrianglesNV ) );
15763       return *this;
15764     }
15765 
setPNextVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15766     GeometryTrianglesNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15767     {
15768       pNext = pNext_;
15769       return *this;
15770     }
15771 
setVertexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15772     GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT
15773     {
15774       vertexData = vertexData_;
15775       return *this;
15776     }
15777 
setVertexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15778     GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT
15779     {
15780       vertexOffset = vertexOffset_;
15781       return *this;
15782     }
15783 
setVertexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15784     GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
15785     {
15786       vertexCount = vertexCount_;
15787       return *this;
15788     }
15789 
setVertexStrideVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15790     GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
15791     {
15792       vertexStride = vertexStride_;
15793       return *this;
15794     }
15795 
setVertexFormatVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15796     GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
15797     {
15798       vertexFormat = vertexFormat_;
15799       return *this;
15800     }
15801 
setIndexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15802     GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT
15803     {
15804       indexData = indexData_;
15805       return *this;
15806     }
15807 
setIndexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15808     GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT
15809     {
15810       indexOffset = indexOffset_;
15811       return *this;
15812     }
15813 
setIndexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15814     GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
15815     {
15816       indexCount = indexCount_;
15817       return *this;
15818     }
15819 
setIndexTypeVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15820     GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
15821     {
15822       indexType = indexType_;
15823       return *this;
15824     }
15825 
setTransformDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15826     GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT
15827     {
15828       transformData = transformData_;
15829       return *this;
15830     }
15831 
setTransformOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV15832     GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT
15833     {
15834       transformOffset = transformOffset_;
15835       return *this;
15836     }
15837 
15838 
operator VkGeometryTrianglesNV const&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15839     operator VkGeometryTrianglesNV const&() const VULKAN_HPP_NOEXCEPT
15840     {
15841       return *reinterpret_cast<const VkGeometryTrianglesNV*>( this );
15842     }
15843 
operator VkGeometryTrianglesNV&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15844     operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
15845     {
15846       return *reinterpret_cast<VkGeometryTrianglesNV*>( this );
15847     }
15848 
15849 
15850 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15851     auto operator<=>( GeometryTrianglesNV const& ) const = default;
15852 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15853     bool operator==( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15854     {
15855       return ( sType == rhs.sType )
15856           && ( pNext == rhs.pNext )
15857           && ( vertexData == rhs.vertexData )
15858           && ( vertexOffset == rhs.vertexOffset )
15859           && ( vertexCount == rhs.vertexCount )
15860           && ( vertexStride == rhs.vertexStride )
15861           && ( vertexFormat == rhs.vertexFormat )
15862           && ( indexData == rhs.indexData )
15863           && ( indexOffset == rhs.indexOffset )
15864           && ( indexCount == rhs.indexCount )
15865           && ( indexType == rhs.indexType )
15866           && ( transformData == rhs.transformData )
15867           && ( transformOffset == rhs.transformOffset );
15868     }
15869 
operator !=VULKAN_HPP_NAMESPACE::GeometryTrianglesNV15870     bool operator!=( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15871     {
15872       return !operator==( rhs );
15873     }
15874 #endif
15875 
15876 
15877 
15878   public:
15879     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV;
15880     const void* pNext = {};
15881     VULKAN_HPP_NAMESPACE::Buffer vertexData = {};
15882     VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {};
15883     uint32_t vertexCount = {};
15884     VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
15885     VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
15886     VULKAN_HPP_NAMESPACE::Buffer indexData = {};
15887     VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {};
15888     uint32_t indexCount = {};
15889     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
15890     VULKAN_HPP_NAMESPACE::Buffer transformData = {};
15891     VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {};
15892 
15893   };
15894   static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" );
15895   static_assert( std::is_standard_layout<GeometryTrianglesNV>::value, "struct wrapper is not a standard layout!" );
15896 
15897   template <>
15898   struct CppType<StructureType, StructureType::eGeometryTrianglesNV>
15899   {
15900     using Type = GeometryTrianglesNV;
15901   };
15902 
15903   struct GeometryAABBNV
15904   {
15905     static const bool allowDuplicate = false;
15906     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV;
15907 
15908 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV15909     VULKAN_HPP_CONSTEXPR GeometryAABBNV(VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {}, uint32_t numAABBs_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT
15910     : aabbData( aabbData_ ), numAABBs( numAABBs_ ), stride( stride_ ), offset( offset_ )
15911     {}
15912 
15913     VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
15914 
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV15915     GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
15916     {
15917       *this = rhs;
15918     }
15919 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
15920 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV15921     GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
15922     {
15923       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryAABBNV const *>( &rhs );
15924       return *this;
15925     }
15926 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV15927     GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
15928     {
15929       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryAABBNV ) );
15930       return *this;
15931     }
15932 
setPNextVULKAN_HPP_NAMESPACE::GeometryAABBNV15933     GeometryAABBNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
15934     {
15935       pNext = pNext_;
15936       return *this;
15937     }
15938 
setAabbDataVULKAN_HPP_NAMESPACE::GeometryAABBNV15939     GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT
15940     {
15941       aabbData = aabbData_;
15942       return *this;
15943     }
15944 
setNumAABBsVULKAN_HPP_NAMESPACE::GeometryAABBNV15945     GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT
15946     {
15947       numAABBs = numAABBs_;
15948       return *this;
15949     }
15950 
setStrideVULKAN_HPP_NAMESPACE::GeometryAABBNV15951     GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
15952     {
15953       stride = stride_;
15954       return *this;
15955     }
15956 
setOffsetVULKAN_HPP_NAMESPACE::GeometryAABBNV15957     GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
15958     {
15959       offset = offset_;
15960       return *this;
15961     }
15962 
15963 
operator VkGeometryAABBNV const&VULKAN_HPP_NAMESPACE::GeometryAABBNV15964     operator VkGeometryAABBNV const&() const VULKAN_HPP_NOEXCEPT
15965     {
15966       return *reinterpret_cast<const VkGeometryAABBNV*>( this );
15967     }
15968 
operator VkGeometryAABBNV&VULKAN_HPP_NAMESPACE::GeometryAABBNV15969     operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
15970     {
15971       return *reinterpret_cast<VkGeometryAABBNV*>( this );
15972     }
15973 
15974 
15975 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
15976     auto operator<=>( GeometryAABBNV const& ) const = default;
15977 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryAABBNV15978     bool operator==( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15979     {
15980       return ( sType == rhs.sType )
15981           && ( pNext == rhs.pNext )
15982           && ( aabbData == rhs.aabbData )
15983           && ( numAABBs == rhs.numAABBs )
15984           && ( stride == rhs.stride )
15985           && ( offset == rhs.offset );
15986     }
15987 
operator !=VULKAN_HPP_NAMESPACE::GeometryAABBNV15988     bool operator!=( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT
15989     {
15990       return !operator==( rhs );
15991     }
15992 #endif
15993 
15994 
15995 
15996   public:
15997     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV;
15998     const void* pNext = {};
15999     VULKAN_HPP_NAMESPACE::Buffer aabbData = {};
16000     uint32_t numAABBs = {};
16001     uint32_t stride = {};
16002     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
16003 
16004   };
16005   static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" );
16006   static_assert( std::is_standard_layout<GeometryAABBNV>::value, "struct wrapper is not a standard layout!" );
16007 
16008   template <>
16009   struct CppType<StructureType, StructureType::eGeometryAabbNV>
16010   {
16011     using Type = GeometryAABBNV;
16012   };
16013 
16014   struct GeometryDataNV
16015   {
16016 
16017 
16018 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV16019     VULKAN_HPP_CONSTEXPR GeometryDataNV(VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {}, VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {}) VULKAN_HPP_NOEXCEPT
16020     : triangles( triangles_ ), aabbs( aabbs_ )
16021     {}
16022 
16023     VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16024 
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV16025     GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
16026     {
16027       *this = rhs;
16028     }
16029 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16030 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV16031     GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
16032     {
16033       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryDataNV const *>( &rhs );
16034       return *this;
16035     }
16036 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV16037     GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
16038     {
16039       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryDataNV ) );
16040       return *this;
16041     }
16042 
setTrianglesVULKAN_HPP_NAMESPACE::GeometryDataNV16043     GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT
16044     {
16045       triangles = triangles_;
16046       return *this;
16047     }
16048 
setAabbsVULKAN_HPP_NAMESPACE::GeometryDataNV16049     GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT
16050     {
16051       aabbs = aabbs_;
16052       return *this;
16053     }
16054 
16055 
operator VkGeometryDataNV const&VULKAN_HPP_NAMESPACE::GeometryDataNV16056     operator VkGeometryDataNV const&() const VULKAN_HPP_NOEXCEPT
16057     {
16058       return *reinterpret_cast<const VkGeometryDataNV*>( this );
16059     }
16060 
operator VkGeometryDataNV&VULKAN_HPP_NAMESPACE::GeometryDataNV16061     operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
16062     {
16063       return *reinterpret_cast<VkGeometryDataNV*>( this );
16064     }
16065 
16066 
16067 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16068     auto operator<=>( GeometryDataNV const& ) const = default;
16069 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryDataNV16070     bool operator==( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16071     {
16072       return ( triangles == rhs.triangles )
16073           && ( aabbs == rhs.aabbs );
16074     }
16075 
operator !=VULKAN_HPP_NAMESPACE::GeometryDataNV16076     bool operator!=( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16077     {
16078       return !operator==( rhs );
16079     }
16080 #endif
16081 
16082 
16083 
16084   public:
16085     VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {};
16086     VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {};
16087 
16088   };
16089   static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" );
16090   static_assert( std::is_standard_layout<GeometryDataNV>::value, "struct wrapper is not a standard layout!" );
16091 
16092   struct GeometryNV
16093   {
16094     static const bool allowDuplicate = false;
16095     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV;
16096 
16097 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV16098     VULKAN_HPP_CONSTEXPR GeometryNV(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}) VULKAN_HPP_NOEXCEPT
16099     : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ )
16100     {}
16101 
16102     VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16103 
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV16104     GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
16105     {
16106       *this = rhs;
16107     }
16108 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16109 
operator =VULKAN_HPP_NAMESPACE::GeometryNV16110     GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
16111     {
16112       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryNV const *>( &rhs );
16113       return *this;
16114     }
16115 
operator =VULKAN_HPP_NAMESPACE::GeometryNV16116     GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
16117     {
16118       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeometryNV ) );
16119       return *this;
16120     }
16121 
setPNextVULKAN_HPP_NAMESPACE::GeometryNV16122     GeometryNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16123     {
16124       pNext = pNext_;
16125       return *this;
16126     }
16127 
setGeometryTypeVULKAN_HPP_NAMESPACE::GeometryNV16128     GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
16129     {
16130       geometryType = geometryType_;
16131       return *this;
16132     }
16133 
setGeometryVULKAN_HPP_NAMESPACE::GeometryNV16134     GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT
16135     {
16136       geometry = geometry_;
16137       return *this;
16138     }
16139 
setFlagsVULKAN_HPP_NAMESPACE::GeometryNV16140     GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
16141     {
16142       flags = flags_;
16143       return *this;
16144     }
16145 
16146 
operator VkGeometryNV const&VULKAN_HPP_NAMESPACE::GeometryNV16147     operator VkGeometryNV const&() const VULKAN_HPP_NOEXCEPT
16148     {
16149       return *reinterpret_cast<const VkGeometryNV*>( this );
16150     }
16151 
operator VkGeometryNV&VULKAN_HPP_NAMESPACE::GeometryNV16152     operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
16153     {
16154       return *reinterpret_cast<VkGeometryNV*>( this );
16155     }
16156 
16157 
16158 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16159     auto operator<=>( GeometryNV const& ) const = default;
16160 #else
operator ==VULKAN_HPP_NAMESPACE::GeometryNV16161     bool operator==( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16162     {
16163       return ( sType == rhs.sType )
16164           && ( pNext == rhs.pNext )
16165           && ( geometryType == rhs.geometryType )
16166           && ( geometry == rhs.geometry )
16167           && ( flags == rhs.flags );
16168     }
16169 
operator !=VULKAN_HPP_NAMESPACE::GeometryNV16170     bool operator!=( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16171     {
16172       return !operator==( rhs );
16173     }
16174 #endif
16175 
16176 
16177 
16178   public:
16179     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV;
16180     const void* pNext = {};
16181     VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
16182     VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {};
16183     VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
16184 
16185   };
16186   static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" );
16187   static_assert( std::is_standard_layout<GeometryNV>::value, "struct wrapper is not a standard layout!" );
16188 
16189   template <>
16190   struct CppType<StructureType, StructureType::eGeometryNV>
16191   {
16192     using Type = GeometryNV;
16193   };
16194 
16195   struct AccelerationStructureInfoNV
16196   {
16197     static const bool allowDuplicate = false;
16198     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV;
16199 
16200 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16201     VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ = {}, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ = {}, uint32_t instanceCount_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ = {}) VULKAN_HPP_NOEXCEPT
16202     : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ )
16203     {}
16204 
16205     VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16206 
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16207     AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16208     {
16209       *this = rhs;
16210     }
16211 
16212 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16213     AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_, uint32_t instanceCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_ )
16214     : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( static_cast<uint32_t>( geometries_.size() ) ), pGeometries( geometries_.data() )
16215     {}
16216 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
16217 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16218 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16219     AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16220     {
16221       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const *>( &rhs );
16222       return *this;
16223     }
16224 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16225     AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16226     {
16227       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureInfoNV ) );
16228       return *this;
16229     }
16230 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16231     AccelerationStructureInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16232     {
16233       pNext = pNext_;
16234       return *this;
16235     }
16236 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16237     AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT
16238     {
16239       type = type_;
16240       return *this;
16241     }
16242 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16243     AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
16244     {
16245       flags = flags_;
16246       return *this;
16247     }
16248 
setInstanceCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16249     AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
16250     {
16251       instanceCount = instanceCount_;
16252       return *this;
16253     }
16254 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16255     AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
16256     {
16257       geometryCount = geometryCount_;
16258       return *this;
16259     }
16260 
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16261     AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ ) VULKAN_HPP_NOEXCEPT
16262     {
16263       pGeometries = pGeometries_;
16264       return *this;
16265     }
16266 
16267 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16268     AccelerationStructureInfoNV & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_ ) VULKAN_HPP_NOEXCEPT
16269     {
16270       geometryCount = static_cast<uint32_t>( geometries_.size() );
16271       pGeometries = geometries_.data();
16272       return *this;
16273     }
16274 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
16275 
16276 
operator VkAccelerationStructureInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16277     operator VkAccelerationStructureInfoNV const&() const VULKAN_HPP_NOEXCEPT
16278     {
16279       return *reinterpret_cast<const VkAccelerationStructureInfoNV*>( this );
16280     }
16281 
operator VkAccelerationStructureInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16282     operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
16283     {
16284       return *reinterpret_cast<VkAccelerationStructureInfoNV*>( this );
16285     }
16286 
16287 
16288 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16289     auto operator<=>( AccelerationStructureInfoNV const& ) const = default;
16290 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16291     bool operator==( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16292     {
16293       return ( sType == rhs.sType )
16294           && ( pNext == rhs.pNext )
16295           && ( type == rhs.type )
16296           && ( flags == rhs.flags )
16297           && ( instanceCount == rhs.instanceCount )
16298           && ( geometryCount == rhs.geometryCount )
16299           && ( pGeometries == rhs.pGeometries );
16300     }
16301 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV16302     bool operator!=( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16303     {
16304       return !operator==( rhs );
16305     }
16306 #endif
16307 
16308 
16309 
16310   public:
16311     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV;
16312     const void* pNext = {};
16313     VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {};
16314     VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {};
16315     uint32_t instanceCount = {};
16316     uint32_t geometryCount = {};
16317     const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries = {};
16318 
16319   };
16320   static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" );
16321   static_assert( std::is_standard_layout<AccelerationStructureInfoNV>::value, "struct wrapper is not a standard layout!" );
16322 
16323   template <>
16324   struct CppType<StructureType, StructureType::eAccelerationStructureInfoNV>
16325   {
16326     using Type = AccelerationStructureInfoNV;
16327   };
16328 
16329   struct AccelerationStructureCreateInfoNV
16330   {
16331     static const bool allowDuplicate = false;
16332     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV;
16333 
16334 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16335     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {}) VULKAN_HPP_NOEXCEPT
16336     : compactedSize( compactedSize_ ), info( info_ )
16337     {}
16338 
16339     VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16340 
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16341     AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16342     {
16343       *this = rhs;
16344     }
16345 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16346 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16347     AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16348     {
16349       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const *>( &rhs );
16350       return *this;
16351     }
16352 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16353     AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16354     {
16355       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureCreateInfoNV ) );
16356       return *this;
16357     }
16358 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16359     AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16360     {
16361       pNext = pNext_;
16362       return *this;
16363     }
16364 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16365     AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
16366     {
16367       compactedSize = compactedSize_;
16368       return *this;
16369     }
16370 
setInfoVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16371     AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT
16372     {
16373       info = info_;
16374       return *this;
16375     }
16376 
16377 
operator VkAccelerationStructureCreateInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16378     operator VkAccelerationStructureCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
16379     {
16380       return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( this );
16381     }
16382 
operator VkAccelerationStructureCreateInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16383     operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
16384     {
16385       return *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>( this );
16386     }
16387 
16388 
16389 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16390     auto operator<=>( AccelerationStructureCreateInfoNV const& ) const = default;
16391 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16392     bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16393     {
16394       return ( sType == rhs.sType )
16395           && ( pNext == rhs.pNext )
16396           && ( compactedSize == rhs.compactedSize )
16397           && ( info == rhs.info );
16398     }
16399 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV16400     bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16401     {
16402       return !operator==( rhs );
16403     }
16404 #endif
16405 
16406 
16407 
16408   public:
16409     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
16410     const void* pNext = {};
16411     VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
16412     VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {};
16413 
16414   };
16415   static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" );
16416   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
16417 
16418   template <>
16419   struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoNV>
16420   {
16421     using Type = AccelerationStructureCreateInfoNV;
16422   };
16423 
16424 #ifdef VK_ENABLE_BETA_EXTENSIONS
16425   struct AccelerationStructureDeviceAddressInfoKHR
16426   {
16427     static const bool allowDuplicate = false;
16428     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
16429 
16430 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16431     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
16432     : accelerationStructure( accelerationStructure_ )
16433     {}
16434 
16435     VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16436 
AccelerationStructureDeviceAddressInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16437     AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16438     {
16439       *this = rhs;
16440     }
16441 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16442 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16443     AccelerationStructureDeviceAddressInfoKHR & operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16444     {
16445       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const *>( &rhs );
16446       return *this;
16447     }
16448 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16449     AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16450     {
16451       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureDeviceAddressInfoKHR ) );
16452       return *this;
16453     }
16454 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16455     AccelerationStructureDeviceAddressInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16456     {
16457       pNext = pNext_;
16458       return *this;
16459     }
16460 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16461     AccelerationStructureDeviceAddressInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16462     {
16463       accelerationStructure = accelerationStructure_;
16464       return *this;
16465     }
16466 
16467 
operator VkAccelerationStructureDeviceAddressInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16468     operator VkAccelerationStructureDeviceAddressInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16469     {
16470       return *reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR*>( this );
16471     }
16472 
operator VkAccelerationStructureDeviceAddressInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16473     operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
16474     {
16475       return *reinterpret_cast<VkAccelerationStructureDeviceAddressInfoKHR*>( this );
16476     }
16477 
16478 
16479 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16480     auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const& ) const = default;
16481 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16482     bool operator==( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16483     {
16484       return ( sType == rhs.sType )
16485           && ( pNext == rhs.pNext )
16486           && ( accelerationStructure == rhs.accelerationStructure );
16487     }
16488 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR16489     bool operator!=( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16490     {
16491       return !operator==( rhs );
16492     }
16493 #endif
16494 
16495 
16496 
16497   public:
16498     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
16499     const void* pNext = {};
16500     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
16501 
16502   };
16503   static_assert( sizeof( AccelerationStructureDeviceAddressInfoKHR ) == sizeof( VkAccelerationStructureDeviceAddressInfoKHR ), "struct and wrapper have different size!" );
16504   static_assert( std::is_standard_layout<AccelerationStructureDeviceAddressInfoKHR>::value, "struct wrapper is not a standard layout!" );
16505 
16506   template <>
16507   struct CppType<StructureType, StructureType::eAccelerationStructureDeviceAddressInfoKHR>
16508   {
16509     using Type = AccelerationStructureDeviceAddressInfoKHR;
16510   };
16511 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16512 
16513   struct TransformMatrixKHR
16514   {
16515 
16516 
16517 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR16518     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR(std::array<std::array<float,4>,3> const& matrix_ = {}) VULKAN_HPP_NOEXCEPT
16519     : matrix( matrix_ )
16520     {}
16521 
16522     VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16523 
TransformMatrixKHRVULKAN_HPP_NAMESPACE::TransformMatrixKHR16524     TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16525     {
16526       *this = rhs;
16527     }
16528 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16529 
operator =VULKAN_HPP_NAMESPACE::TransformMatrixKHR16530     TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16531     {
16532       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const *>( &rhs );
16533       return *this;
16534     }
16535 
operator =VULKAN_HPP_NAMESPACE::TransformMatrixKHR16536     TransformMatrixKHR & operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16537     {
16538       memcpy( static_cast<void *>( this ), &rhs, sizeof( TransformMatrixKHR ) );
16539       return *this;
16540     }
16541 
setMatrixVULKAN_HPP_NAMESPACE::TransformMatrixKHR16542     TransformMatrixKHR & setMatrix( std::array<std::array<float,4>,3> matrix_ ) VULKAN_HPP_NOEXCEPT
16543     {
16544       matrix = matrix_;
16545       return *this;
16546     }
16547 
16548 
operator VkTransformMatrixKHR const&VULKAN_HPP_NAMESPACE::TransformMatrixKHR16549     operator VkTransformMatrixKHR const&() const VULKAN_HPP_NOEXCEPT
16550     {
16551       return *reinterpret_cast<const VkTransformMatrixKHR*>( this );
16552     }
16553 
operator VkTransformMatrixKHR&VULKAN_HPP_NAMESPACE::TransformMatrixKHR16554     operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
16555     {
16556       return *reinterpret_cast<VkTransformMatrixKHR*>( this );
16557     }
16558 
16559 
16560 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16561     auto operator<=>( TransformMatrixKHR const& ) const = default;
16562 #else
operator ==VULKAN_HPP_NAMESPACE::TransformMatrixKHR16563     bool operator==( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16564     {
16565       return ( matrix == rhs.matrix );
16566     }
16567 
operator !=VULKAN_HPP_NAMESPACE::TransformMatrixKHR16568     bool operator!=( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16569     {
16570       return !operator==( rhs );
16571     }
16572 #endif
16573 
16574 
16575 
16576   public:
16577     VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> matrix = {};
16578 
16579   };
16580   static_assert( sizeof( TransformMatrixKHR ) == sizeof( VkTransformMatrixKHR ), "struct and wrapper have different size!" );
16581   static_assert( std::is_standard_layout<TransformMatrixKHR>::value, "struct wrapper is not a standard layout!" );
16582   using TransformMatrixNV = TransformMatrixKHR;
16583 
16584   struct AccelerationStructureInstanceKHR
16585   {
16586 
16587 
16588 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16589     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR(VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform_ = {}, uint32_t instanceCustomIndex_ = {}, uint32_t mask_ = {}, uint32_t instanceShaderBindingTableRecordOffset_ = {}, VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {}, uint64_t accelerationStructureReference_ = {}) VULKAN_HPP_NOEXCEPT
16590     : transform( transform_ ), instanceCustomIndex( instanceCustomIndex_ ), mask( mask_ ), instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ), flags( flags_ ), accelerationStructureReference( accelerationStructureReference_ )
16591     {}
16592 
16593     VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16594 
AccelerationStructureInstanceKHRVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16595     AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16596     {
16597       *this = rhs;
16598     }
16599 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16600 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16601     AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16602     {
16603       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const *>( &rhs );
16604       return *this;
16605     }
16606 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16607     AccelerationStructureInstanceKHR & operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16608     {
16609       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureInstanceKHR ) );
16610       return *this;
16611     }
16612 
setTransformVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16613     AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT
16614     {
16615       transform = transform_;
16616       return *this;
16617     }
16618 
setInstanceCustomIndexVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16619     AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
16620     {
16621       instanceCustomIndex = instanceCustomIndex_;
16622       return *this;
16623     }
16624 
setMaskVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16625     AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
16626     {
16627       mask = mask_;
16628       return *this;
16629     }
16630 
setInstanceShaderBindingTableRecordOffsetVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16631     AccelerationStructureInstanceKHR & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
16632     {
16633       instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
16634       return *this;
16635     }
16636 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16637     AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
16638     {
16639       flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR*>(&flags_);
16640       return *this;
16641     }
16642 
setAccelerationStructureReferenceVULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16643     AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
16644     {
16645       accelerationStructureReference = accelerationStructureReference_;
16646       return *this;
16647     }
16648 
16649 
operator VkAccelerationStructureInstanceKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16650     operator VkAccelerationStructureInstanceKHR const&() const VULKAN_HPP_NOEXCEPT
16651     {
16652       return *reinterpret_cast<const VkAccelerationStructureInstanceKHR*>( this );
16653     }
16654 
operator VkAccelerationStructureInstanceKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16655     operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
16656     {
16657       return *reinterpret_cast<VkAccelerationStructureInstanceKHR*>( this );
16658     }
16659 
16660 
16661 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16662     auto operator<=>( AccelerationStructureInstanceKHR const& ) const = default;
16663 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16664     bool operator==( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16665     {
16666       return ( transform == rhs.transform )
16667           && ( instanceCustomIndex == rhs.instanceCustomIndex )
16668           && ( mask == rhs.mask )
16669           && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset )
16670           && ( flags == rhs.flags )
16671           && ( accelerationStructureReference == rhs.accelerationStructureReference );
16672     }
16673 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR16674     bool operator!=( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16675     {
16676       return !operator==( rhs );
16677     }
16678 #endif
16679 
16680 
16681 
16682   public:
16683     VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
16684     uint32_t instanceCustomIndex : 24;
16685     uint32_t mask : 8;
16686     uint32_t instanceShaderBindingTableRecordOffset : 24;
16687     VkGeometryInstanceFlagsKHR flags : 8;
16688     uint64_t accelerationStructureReference = {};
16689 
16690   };
16691   static_assert( sizeof( AccelerationStructureInstanceKHR ) == sizeof( VkAccelerationStructureInstanceKHR ), "struct and wrapper have different size!" );
16692   static_assert( std::is_standard_layout<AccelerationStructureInstanceKHR>::value, "struct wrapper is not a standard layout!" );
16693   using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
16694 
16695 #ifdef VK_ENABLE_BETA_EXTENSIONS
16696   struct AccelerationStructureMemoryRequirementsInfoKHR
16697   {
16698     static const bool allowDuplicate = false;
16699     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoKHR;
16700 
16701 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMemoryRequirementsInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16702     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR::eObject, VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType_ = VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR::eHost, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
16703     : type( type_ ), buildType( buildType_ ), accelerationStructure( accelerationStructure_ )
16704     {}
16705 
16706     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoKHR( AccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16707 
AccelerationStructureMemoryRequirementsInfoKHRVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16708     AccelerationStructureMemoryRequirementsInfoKHR( VkAccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16709     {
16710       *this = rhs;
16711     }
16712 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16713 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16714     AccelerationStructureMemoryRequirementsInfoKHR & operator=( VkAccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16715     {
16716       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR const *>( &rhs );
16717       return *this;
16718     }
16719 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16720     AccelerationStructureMemoryRequirementsInfoKHR & operator=( AccelerationStructureMemoryRequirementsInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16721     {
16722       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureMemoryRequirementsInfoKHR ) );
16723       return *this;
16724     }
16725 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16726     AccelerationStructureMemoryRequirementsInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16727     {
16728       pNext = pNext_;
16729       return *this;
16730     }
16731 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16732     AccelerationStructureMemoryRequirementsInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
16733     {
16734       type = type_;
16735       return *this;
16736     }
16737 
setBuildTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16738     AccelerationStructureMemoryRequirementsInfoKHR & setBuildType( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType_ ) VULKAN_HPP_NOEXCEPT
16739     {
16740       buildType = buildType_;
16741       return *this;
16742     }
16743 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16744     AccelerationStructureMemoryRequirementsInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16745     {
16746       accelerationStructure = accelerationStructure_;
16747       return *this;
16748     }
16749 
16750 
operator VkAccelerationStructureMemoryRequirementsInfoKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16751     operator VkAccelerationStructureMemoryRequirementsInfoKHR const&() const VULKAN_HPP_NOEXCEPT
16752     {
16753       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR*>( this );
16754     }
16755 
operator VkAccelerationStructureMemoryRequirementsInfoKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16756     operator VkAccelerationStructureMemoryRequirementsInfoKHR &() VULKAN_HPP_NOEXCEPT
16757     {
16758       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoKHR*>( this );
16759     }
16760 
16761 
16762 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16763     auto operator<=>( AccelerationStructureMemoryRequirementsInfoKHR const& ) const = default;
16764 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16765     bool operator==( AccelerationStructureMemoryRequirementsInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16766     {
16767       return ( sType == rhs.sType )
16768           && ( pNext == rhs.pNext )
16769           && ( type == rhs.type )
16770           && ( buildType == rhs.buildType )
16771           && ( accelerationStructure == rhs.accelerationStructure );
16772     }
16773 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR16774     bool operator!=( AccelerationStructureMemoryRequirementsInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16775     {
16776       return !operator==( rhs );
16777     }
16778 #endif
16779 
16780 
16781 
16782   public:
16783     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoKHR;
16784     const void* pNext = {};
16785     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeKHR::eObject;
16786     VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType = VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR::eHost;
16787     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
16788 
16789   };
16790   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoKHR ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoKHR ), "struct and wrapper have different size!" );
16791   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoKHR>::value, "struct wrapper is not a standard layout!" );
16792 
16793   template <>
16794   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoKHR>
16795   {
16796     using Type = AccelerationStructureMemoryRequirementsInfoKHR;
16797   };
16798 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16799 
16800   struct AccelerationStructureMemoryRequirementsInfoNV
16801   {
16802     static const bool allowDuplicate = false;
16803     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
16804 
16805 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16806     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT
16807     : type( type_ ), accelerationStructure( accelerationStructure_ )
16808     {}
16809 
16810     VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16811 
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16812     AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16813     {
16814       *this = rhs;
16815     }
16816 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16817 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16818     AccelerationStructureMemoryRequirementsInfoNV & operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16819     {
16820       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs );
16821       return *this;
16822     }
16823 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16824     AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
16825     {
16826       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureMemoryRequirementsInfoNV ) );
16827       return *this;
16828     }
16829 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16830     AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16831     {
16832       pNext = pNext_;
16833       return *this;
16834     }
16835 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16836     AccelerationStructureMemoryRequirementsInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
16837     {
16838       type = type_;
16839       return *this;
16840     }
16841 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16842     AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
16843     {
16844       accelerationStructure = accelerationStructure_;
16845       return *this;
16846     }
16847 
16848 
operator VkAccelerationStructureMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16849     operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
16850     {
16851       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
16852     }
16853 
operator VkAccelerationStructureMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16854     operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
16855     {
16856       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
16857     }
16858 
16859 
16860 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16861     auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const& ) const = default;
16862 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16863     bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16864     {
16865       return ( sType == rhs.sType )
16866           && ( pNext == rhs.pNext )
16867           && ( type == rhs.type )
16868           && ( accelerationStructure == rhs.accelerationStructure );
16869     }
16870 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV16871     bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
16872     {
16873       return !operator==( rhs );
16874     }
16875 #endif
16876 
16877 
16878 
16879   public:
16880     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
16881     const void* pNext = {};
16882     VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = {};
16883     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
16884 
16885   };
16886   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
16887   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
16888 
16889   template <>
16890   struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoNV>
16891   {
16892     using Type = AccelerationStructureMemoryRequirementsInfoNV;
16893   };
16894 
16895 #ifdef VK_ENABLE_BETA_EXTENSIONS
16896   struct AccelerationStructureVersionKHR
16897   {
16898     static const bool allowDuplicate = false;
16899     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionKHR;
16900 
16901 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AccelerationStructureVersionKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16902     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionKHR(const uint8_t* versionData_ = {}) VULKAN_HPP_NOEXCEPT
16903     : versionData( versionData_ )
16904     {}
16905 
16906     VULKAN_HPP_CONSTEXPR AccelerationStructureVersionKHR( AccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
16907 
AccelerationStructureVersionKHRVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16908     AccelerationStructureVersionKHR( VkAccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16909     {
16910       *this = rhs;
16911     }
16912 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
16913 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16914     AccelerationStructureVersionKHR & operator=( VkAccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16915     {
16916       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR const *>( &rhs );
16917       return *this;
16918     }
16919 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16920     AccelerationStructureVersionKHR & operator=( AccelerationStructureVersionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
16921     {
16922       memcpy( static_cast<void *>( this ), &rhs, sizeof( AccelerationStructureVersionKHR ) );
16923       return *this;
16924     }
16925 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16926     AccelerationStructureVersionKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
16927     {
16928       pNext = pNext_;
16929       return *this;
16930     }
16931 
setVersionDataVULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16932     AccelerationStructureVersionKHR & setVersionData( const uint8_t* versionData_ ) VULKAN_HPP_NOEXCEPT
16933     {
16934       versionData = versionData_;
16935       return *this;
16936     }
16937 
16938 
operator VkAccelerationStructureVersionKHR const&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16939     operator VkAccelerationStructureVersionKHR const&() const VULKAN_HPP_NOEXCEPT
16940     {
16941       return *reinterpret_cast<const VkAccelerationStructureVersionKHR*>( this );
16942     }
16943 
operator VkAccelerationStructureVersionKHR&VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16944     operator VkAccelerationStructureVersionKHR &() VULKAN_HPP_NOEXCEPT
16945     {
16946       return *reinterpret_cast<VkAccelerationStructureVersionKHR*>( this );
16947     }
16948 
16949 
16950 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
16951     auto operator<=>( AccelerationStructureVersionKHR const& ) const = default;
16952 #else
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16953     bool operator==( AccelerationStructureVersionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16954     {
16955       return ( sType == rhs.sType )
16956           && ( pNext == rhs.pNext )
16957           && ( versionData == rhs.versionData );
16958     }
16959 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR16960     bool operator!=( AccelerationStructureVersionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
16961     {
16962       return !operator==( rhs );
16963     }
16964 #endif
16965 
16966 
16967 
16968   public:
16969     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionKHR;
16970     const void* pNext = {};
16971     const uint8_t* versionData = {};
16972 
16973   };
16974   static_assert( sizeof( AccelerationStructureVersionKHR ) == sizeof( VkAccelerationStructureVersionKHR ), "struct and wrapper have different size!" );
16975   static_assert( std::is_standard_layout<AccelerationStructureVersionKHR>::value, "struct wrapper is not a standard layout!" );
16976 
16977   template <>
16978   struct CppType<StructureType, StructureType::eAccelerationStructureVersionKHR>
16979   {
16980     using Type = AccelerationStructureVersionKHR;
16981   };
16982 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16983 
16984   class SwapchainKHR
16985   {
16986   public:
16987     using CType = VkSwapchainKHR;
16988 
16989     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR;
16990     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
16991 
16992   public:
SwapchainKHR()16993     VULKAN_HPP_CONSTEXPR SwapchainKHR() VULKAN_HPP_NOEXCEPT
16994       : m_swapchainKHR(VK_NULL_HANDLE)
16995     {}
16996 
SwapchainKHR(std::nullptr_t)16997     VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
16998       : m_swapchainKHR(VK_NULL_HANDLE)
16999     {}
17000 
SwapchainKHR(VkSwapchainKHR swapchainKHR)17001     VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT
17002       : m_swapchainKHR( swapchainKHR )
17003     {}
17004 
17005 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSwapchainKHR swapchainKHR)17006     SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR) VULKAN_HPP_NOEXCEPT
17007     {
17008       m_swapchainKHR = swapchainKHR;
17009       return *this;
17010     }
17011 #endif
17012 
operator =(std::nullptr_t)17013     SwapchainKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17014     {
17015       m_swapchainKHR = VK_NULL_HANDLE;
17016       return *this;
17017     }
17018 
17019 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17020     auto operator<=>( SwapchainKHR const& ) const = default;
17021 #else
operator ==(SwapchainKHR const & rhs) const17022     bool operator==( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
17023     {
17024       return m_swapchainKHR == rhs.m_swapchainKHR;
17025     }
17026 
operator !=(SwapchainKHR const & rhs) const17027     bool operator!=(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
17028     {
17029       return m_swapchainKHR != rhs.m_swapchainKHR;
17030     }
17031 
operator <(SwapchainKHR const & rhs) const17032     bool operator<(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
17033     {
17034       return m_swapchainKHR < rhs.m_swapchainKHR;
17035     }
17036 #endif
17037 
operator VkSwapchainKHR() const17038     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const VULKAN_HPP_NOEXCEPT
17039     {
17040       return m_swapchainKHR;
17041     }
17042 
operator bool() const17043     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17044     {
17045       return m_swapchainKHR != VK_NULL_HANDLE;
17046     }
17047 
operator !() const17048     bool operator!() const VULKAN_HPP_NOEXCEPT
17049     {
17050       return m_swapchainKHR == VK_NULL_HANDLE;
17051     }
17052 
17053   private:
17054     VkSwapchainKHR m_swapchainKHR;
17055   };
17056   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" );
17057 
17058   template <>
17059   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSwapchainKHR>
17060   {
17061     using type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
17062   };
17063 
17064   template <>
17065   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR>
17066   {
17067     using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
17068   };
17069 
17070 
17071   template <>
17072   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR>
17073   {
17074     using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR;
17075   };
17076 
17077 
17078   template <>
17079   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SwapchainKHR>
17080   {
17081     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
17082   };
17083 
17084   class Semaphore
17085   {
17086   public:
17087     using CType = VkSemaphore;
17088 
17089     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore;
17090     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
17091 
17092   public:
Semaphore()17093     VULKAN_HPP_CONSTEXPR Semaphore() VULKAN_HPP_NOEXCEPT
17094       : m_semaphore(VK_NULL_HANDLE)
17095     {}
17096 
Semaphore(std::nullptr_t)17097     VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17098       : m_semaphore(VK_NULL_HANDLE)
17099     {}
17100 
Semaphore(VkSemaphore semaphore)17101     VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT
17102       : m_semaphore( semaphore )
17103     {}
17104 
17105 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSemaphore semaphore)17106     Semaphore & operator=(VkSemaphore semaphore) VULKAN_HPP_NOEXCEPT
17107     {
17108       m_semaphore = semaphore;
17109       return *this;
17110     }
17111 #endif
17112 
operator =(std::nullptr_t)17113     Semaphore & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17114     {
17115       m_semaphore = VK_NULL_HANDLE;
17116       return *this;
17117     }
17118 
17119 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17120     auto operator<=>( Semaphore const& ) const = default;
17121 #else
operator ==(Semaphore const & rhs) const17122     bool operator==( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
17123     {
17124       return m_semaphore == rhs.m_semaphore;
17125     }
17126 
operator !=(Semaphore const & rhs) const17127     bool operator!=(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
17128     {
17129       return m_semaphore != rhs.m_semaphore;
17130     }
17131 
operator <(Semaphore const & rhs) const17132     bool operator<(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT
17133     {
17134       return m_semaphore < rhs.m_semaphore;
17135     }
17136 #endif
17137 
operator VkSemaphore() const17138     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const VULKAN_HPP_NOEXCEPT
17139     {
17140       return m_semaphore;
17141     }
17142 
operator bool() const17143     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17144     {
17145       return m_semaphore != VK_NULL_HANDLE;
17146     }
17147 
operator !() const17148     bool operator!() const VULKAN_HPP_NOEXCEPT
17149     {
17150       return m_semaphore == VK_NULL_HANDLE;
17151     }
17152 
17153   private:
17154     VkSemaphore m_semaphore;
17155   };
17156   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" );
17157 
17158   template <>
17159   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSemaphore>
17160   {
17161     using type = VULKAN_HPP_NAMESPACE::Semaphore;
17162   };
17163 
17164   template <>
17165   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore>
17166   {
17167     using Type = VULKAN_HPP_NAMESPACE::Semaphore;
17168   };
17169 
17170 
17171   template <>
17172   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore>
17173   {
17174     using Type = VULKAN_HPP_NAMESPACE::Semaphore;
17175   };
17176 
17177 
17178   template <>
17179   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Semaphore>
17180   {
17181     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
17182   };
17183 
17184   class Fence
17185   {
17186   public:
17187     using CType = VkFence;
17188 
17189     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence;
17190     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
17191 
17192   public:
Fence()17193     VULKAN_HPP_CONSTEXPR Fence() VULKAN_HPP_NOEXCEPT
17194       : m_fence(VK_NULL_HANDLE)
17195     {}
17196 
Fence(std::nullptr_t)17197     VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17198       : m_fence(VK_NULL_HANDLE)
17199     {}
17200 
Fence(VkFence fence)17201     VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT
17202       : m_fence( fence )
17203     {}
17204 
17205 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFence fence)17206     Fence & operator=(VkFence fence) VULKAN_HPP_NOEXCEPT
17207     {
17208       m_fence = fence;
17209       return *this;
17210     }
17211 #endif
17212 
operator =(std::nullptr_t)17213     Fence & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
17214     {
17215       m_fence = VK_NULL_HANDLE;
17216       return *this;
17217     }
17218 
17219 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17220     auto operator<=>( Fence const& ) const = default;
17221 #else
operator ==(Fence const & rhs) const17222     bool operator==( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
17223     {
17224       return m_fence == rhs.m_fence;
17225     }
17226 
operator !=(Fence const & rhs) const17227     bool operator!=(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
17228     {
17229       return m_fence != rhs.m_fence;
17230     }
17231 
operator <(Fence const & rhs) const17232     bool operator<(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT
17233     {
17234       return m_fence < rhs.m_fence;
17235     }
17236 #endif
17237 
operator VkFence() const17238     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const VULKAN_HPP_NOEXCEPT
17239     {
17240       return m_fence;
17241     }
17242 
operator bool() const17243     explicit operator bool() const VULKAN_HPP_NOEXCEPT
17244     {
17245       return m_fence != VK_NULL_HANDLE;
17246     }
17247 
operator !() const17248     bool operator!() const VULKAN_HPP_NOEXCEPT
17249     {
17250       return m_fence == VK_NULL_HANDLE;
17251     }
17252 
17253   private:
17254     VkFence m_fence;
17255   };
17256   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" );
17257 
17258   template <>
17259   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFence>
17260   {
17261     using type = VULKAN_HPP_NAMESPACE::Fence;
17262   };
17263 
17264   template <>
17265   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eFence>
17266   {
17267     using Type = VULKAN_HPP_NAMESPACE::Fence;
17268   };
17269 
17270 
17271   template <>
17272   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence>
17273   {
17274     using Type = VULKAN_HPP_NAMESPACE::Fence;
17275   };
17276 
17277 
17278   template <>
17279   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Fence>
17280   {
17281     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
17282   };
17283 
17284   struct AcquireNextImageInfoKHR
17285   {
17286     static const bool allowDuplicate = false;
17287     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR;
17288 
17289 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17290     VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint64_t timeout_ = {}, VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::Fence fence_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
17291     : swapchain( swapchain_ ), timeout( timeout_ ), semaphore( semaphore_ ), fence( fence_ ), deviceMask( deviceMask_ )
17292     {}
17293 
17294     VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17295 
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17296     AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17297     {
17298       *this = rhs;
17299     }
17300 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17301 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17302     AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17303     {
17304       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const *>( &rhs );
17305       return *this;
17306     }
17307 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17308     AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17309     {
17310       memcpy( static_cast<void *>( this ), &rhs, sizeof( AcquireNextImageInfoKHR ) );
17311       return *this;
17312     }
17313 
setPNextVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17314     AcquireNextImageInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17315     {
17316       pNext = pNext_;
17317       return *this;
17318     }
17319 
setSwapchainVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17320     AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
17321     {
17322       swapchain = swapchain_;
17323       return *this;
17324     }
17325 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17326     AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
17327     {
17328       timeout = timeout_;
17329       return *this;
17330     }
17331 
setSemaphoreVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17332     AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
17333     {
17334       semaphore = semaphore_;
17335       return *this;
17336     }
17337 
setFenceVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17338     AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
17339     {
17340       fence = fence_;
17341       return *this;
17342     }
17343 
setDeviceMaskVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17344     AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
17345     {
17346       deviceMask = deviceMask_;
17347       return *this;
17348     }
17349 
17350 
operator VkAcquireNextImageInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17351     operator VkAcquireNextImageInfoKHR const&() const VULKAN_HPP_NOEXCEPT
17352     {
17353       return *reinterpret_cast<const VkAcquireNextImageInfoKHR*>( this );
17354     }
17355 
operator VkAcquireNextImageInfoKHR&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17356     operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
17357     {
17358       return *reinterpret_cast<VkAcquireNextImageInfoKHR*>( this );
17359     }
17360 
17361 
17362 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17363     auto operator<=>( AcquireNextImageInfoKHR const& ) const = default;
17364 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17365     bool operator==( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17366     {
17367       return ( sType == rhs.sType )
17368           && ( pNext == rhs.pNext )
17369           && ( swapchain == rhs.swapchain )
17370           && ( timeout == rhs.timeout )
17371           && ( semaphore == rhs.semaphore )
17372           && ( fence == rhs.fence )
17373           && ( deviceMask == rhs.deviceMask );
17374     }
17375 
operator !=VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR17376     bool operator!=( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17377     {
17378       return !operator==( rhs );
17379     }
17380 #endif
17381 
17382 
17383 
17384   public:
17385     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR;
17386     const void* pNext = {};
17387     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
17388     uint64_t timeout = {};
17389     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
17390     VULKAN_HPP_NAMESPACE::Fence fence = {};
17391     uint32_t deviceMask = {};
17392 
17393   };
17394   static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" );
17395   static_assert( std::is_standard_layout<AcquireNextImageInfoKHR>::value, "struct wrapper is not a standard layout!" );
17396 
17397   template <>
17398   struct CppType<StructureType, StructureType::eAcquireNextImageInfoKHR>
17399   {
17400     using Type = AcquireNextImageInfoKHR;
17401   };
17402 
17403   struct AcquireProfilingLockInfoKHR
17404   {
17405     static const bool allowDuplicate = false;
17406     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR;
17407 
17408 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17409     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR(VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {}, uint64_t timeout_ = {}) VULKAN_HPP_NOEXCEPT
17410     : flags( flags_ ), timeout( timeout_ )
17411     {}
17412 
17413     VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17414 
AcquireProfilingLockInfoKHRVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17415     AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17416     {
17417       *this = rhs;
17418     }
17419 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17420 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17421     AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17422     {
17423       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const *>( &rhs );
17424       return *this;
17425     }
17426 
operator =VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17427     AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17428     {
17429       memcpy( static_cast<void *>( this ), &rhs, sizeof( AcquireProfilingLockInfoKHR ) );
17430       return *this;
17431     }
17432 
setPNextVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17433     AcquireProfilingLockInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17434     {
17435       pNext = pNext_;
17436       return *this;
17437     }
17438 
setFlagsVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17439     AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
17440     {
17441       flags = flags_;
17442       return *this;
17443     }
17444 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17445     AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
17446     {
17447       timeout = timeout_;
17448       return *this;
17449     }
17450 
17451 
operator VkAcquireProfilingLockInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17452     operator VkAcquireProfilingLockInfoKHR const&() const VULKAN_HPP_NOEXCEPT
17453     {
17454       return *reinterpret_cast<const VkAcquireProfilingLockInfoKHR*>( this );
17455     }
17456 
operator VkAcquireProfilingLockInfoKHR&VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17457     operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
17458     {
17459       return *reinterpret_cast<VkAcquireProfilingLockInfoKHR*>( this );
17460     }
17461 
17462 
17463 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17464     auto operator<=>( AcquireProfilingLockInfoKHR const& ) const = default;
17465 #else
operator ==VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17466     bool operator==( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17467     {
17468       return ( sType == rhs.sType )
17469           && ( pNext == rhs.pNext )
17470           && ( flags == rhs.flags )
17471           && ( timeout == rhs.timeout );
17472     }
17473 
operator !=VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR17474     bool operator!=( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
17475     {
17476       return !operator==( rhs );
17477     }
17478 #endif
17479 
17480 
17481 
17482   public:
17483     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR;
17484     const void* pNext = {};
17485     VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {};
17486     uint64_t timeout = {};
17487 
17488   };
17489   static_assert( sizeof( AcquireProfilingLockInfoKHR ) == sizeof( VkAcquireProfilingLockInfoKHR ), "struct and wrapper have different size!" );
17490   static_assert( std::is_standard_layout<AcquireProfilingLockInfoKHR>::value, "struct wrapper is not a standard layout!" );
17491 
17492   template <>
17493   struct CppType<StructureType, StructureType::eAcquireProfilingLockInfoKHR>
17494   {
17495     using Type = AcquireProfilingLockInfoKHR;
17496   };
17497 
17498   struct AllocationCallbacks
17499   {
17500 
17501 
17502 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks17503     VULKAN_HPP_CONSTEXPR AllocationCallbacks(void* pUserData_ = {}, PFN_vkAllocationFunction pfnAllocation_ = {}, PFN_vkReallocationFunction pfnReallocation_ = {}, PFN_vkFreeFunction pfnFree_ = {}, PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {}, PFN_vkInternalFreeNotification pfnInternalFree_ = {}) VULKAN_HPP_NOEXCEPT
17504     : pUserData( pUserData_ ), pfnAllocation( pfnAllocation_ ), pfnReallocation( pfnReallocation_ ), pfnFree( pfnFree_ ), pfnInternalAllocation( pfnInternalAllocation_ ), pfnInternalFree( pfnInternalFree_ )
17505     {}
17506 
17507     VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17508 
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks17509     AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
17510     {
17511       *this = rhs;
17512     }
17513 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17514 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks17515     AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
17516     {
17517       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AllocationCallbacks const *>( &rhs );
17518       return *this;
17519     }
17520 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks17521     AllocationCallbacks & operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
17522     {
17523       memcpy( static_cast<void *>( this ), &rhs, sizeof( AllocationCallbacks ) );
17524       return *this;
17525     }
17526 
setPUserDataVULKAN_HPP_NAMESPACE::AllocationCallbacks17527     AllocationCallbacks & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
17528     {
17529       pUserData = pUserData_;
17530       return *this;
17531     }
17532 
setPfnAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks17533     AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT
17534     {
17535       pfnAllocation = pfnAllocation_;
17536       return *this;
17537     }
17538 
setPfnReallocationVULKAN_HPP_NAMESPACE::AllocationCallbacks17539     AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT
17540     {
17541       pfnReallocation = pfnReallocation_;
17542       return *this;
17543     }
17544 
setPfnFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks17545     AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT
17546     {
17547       pfnFree = pfnFree_;
17548       return *this;
17549     }
17550 
setPfnInternalAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks17551     AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT
17552     {
17553       pfnInternalAllocation = pfnInternalAllocation_;
17554       return *this;
17555     }
17556 
setPfnInternalFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks17557     AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT
17558     {
17559       pfnInternalFree = pfnInternalFree_;
17560       return *this;
17561     }
17562 
17563 
operator VkAllocationCallbacks const&VULKAN_HPP_NAMESPACE::AllocationCallbacks17564     operator VkAllocationCallbacks const&() const VULKAN_HPP_NOEXCEPT
17565     {
17566       return *reinterpret_cast<const VkAllocationCallbacks*>( this );
17567     }
17568 
operator VkAllocationCallbacks&VULKAN_HPP_NAMESPACE::AllocationCallbacks17569     operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
17570     {
17571       return *reinterpret_cast<VkAllocationCallbacks*>( this );
17572     }
17573 
17574 
17575 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17576     auto operator<=>( AllocationCallbacks const& ) const = default;
17577 #else
operator ==VULKAN_HPP_NAMESPACE::AllocationCallbacks17578     bool operator==( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
17579     {
17580       return ( pUserData == rhs.pUserData )
17581           && ( pfnAllocation == rhs.pfnAllocation )
17582           && ( pfnReallocation == rhs.pfnReallocation )
17583           && ( pfnFree == rhs.pfnFree )
17584           && ( pfnInternalAllocation == rhs.pfnInternalAllocation )
17585           && ( pfnInternalFree == rhs.pfnInternalFree );
17586     }
17587 
operator !=VULKAN_HPP_NAMESPACE::AllocationCallbacks17588     bool operator!=( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT
17589     {
17590       return !operator==( rhs );
17591     }
17592 #endif
17593 
17594 
17595 
17596   public:
17597     void* pUserData = {};
17598     PFN_vkAllocationFunction pfnAllocation = {};
17599     PFN_vkReallocationFunction pfnReallocation = {};
17600     PFN_vkFreeFunction pfnFree = {};
17601     PFN_vkInternalAllocationNotification pfnInternalAllocation = {};
17602     PFN_vkInternalFreeNotification pfnInternalFree = {};
17603 
17604   };
17605   static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" );
17606   static_assert( std::is_standard_layout<AllocationCallbacks>::value, "struct wrapper is not a standard layout!" );
17607 
17608   struct ComponentMapping
17609   {
17610 
17611 
17612 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping17613     VULKAN_HPP_CONSTEXPR ComponentMapping(VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity) VULKAN_HPP_NOEXCEPT
17614     : r( r_ ), g( g_ ), b( b_ ), a( a_ )
17615     {}
17616 
17617     VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17618 
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping17619     ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
17620     {
17621       *this = rhs;
17622     }
17623 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17624 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping17625     ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
17626     {
17627       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComponentMapping const *>( &rhs );
17628       return *this;
17629     }
17630 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping17631     ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
17632     {
17633       memcpy( static_cast<void *>( this ), &rhs, sizeof( ComponentMapping ) );
17634       return *this;
17635     }
17636 
setRVULKAN_HPP_NAMESPACE::ComponentMapping17637     ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT
17638     {
17639       r = r_;
17640       return *this;
17641     }
17642 
setGVULKAN_HPP_NAMESPACE::ComponentMapping17643     ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT
17644     {
17645       g = g_;
17646       return *this;
17647     }
17648 
setBVULKAN_HPP_NAMESPACE::ComponentMapping17649     ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT
17650     {
17651       b = b_;
17652       return *this;
17653     }
17654 
setAVULKAN_HPP_NAMESPACE::ComponentMapping17655     ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT
17656     {
17657       a = a_;
17658       return *this;
17659     }
17660 
17661 
operator VkComponentMapping const&VULKAN_HPP_NAMESPACE::ComponentMapping17662     operator VkComponentMapping const&() const VULKAN_HPP_NOEXCEPT
17663     {
17664       return *reinterpret_cast<const VkComponentMapping*>( this );
17665     }
17666 
operator VkComponentMapping&VULKAN_HPP_NAMESPACE::ComponentMapping17667     operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
17668     {
17669       return *reinterpret_cast<VkComponentMapping*>( this );
17670     }
17671 
17672 
17673 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17674     auto operator<=>( ComponentMapping const& ) const = default;
17675 #else
operator ==VULKAN_HPP_NAMESPACE::ComponentMapping17676     bool operator==( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
17677     {
17678       return ( r == rhs.r )
17679           && ( g == rhs.g )
17680           && ( b == rhs.b )
17681           && ( a == rhs.a );
17682     }
17683 
operator !=VULKAN_HPP_NAMESPACE::ComponentMapping17684     bool operator!=( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT
17685     {
17686       return !operator==( rhs );
17687     }
17688 #endif
17689 
17690 
17691 
17692   public:
17693     VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17694     VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17695     VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17696     VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
17697 
17698   };
17699   static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" );
17700   static_assert( std::is_standard_layout<ComponentMapping>::value, "struct wrapper is not a standard layout!" );
17701 
17702 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17703   struct AndroidHardwareBufferFormatPropertiesANDROID
17704   {
17705     static const bool allowDuplicate = false;
17706     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
17707 
17708 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17709     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint64_t externalFormat_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {}, VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {}, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven) VULKAN_HPP_NOEXCEPT
17710     : format( format_ ), externalFormat( externalFormat_ ), formatFeatures( formatFeatures_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ )
17711     {}
17712 
17713     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17714 
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17715     AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17716     {
17717       *this = rhs;
17718     }
17719 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17720 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17721     AndroidHardwareBufferFormatPropertiesANDROID & operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17722     {
17723       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs );
17724       return *this;
17725     }
17726 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17727     AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17728     {
17729       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) );
17730       return *this;
17731     }
17732 
17733 
operator VkAndroidHardwareBufferFormatPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17734     operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
17735     {
17736       return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
17737     }
17738 
operator VkAndroidHardwareBufferFormatPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17739     operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
17740     {
17741       return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
17742     }
17743 
17744 
17745 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17746     auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const& ) const = default;
17747 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17748     bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17749     {
17750       return ( sType == rhs.sType )
17751           && ( pNext == rhs.pNext )
17752           && ( format == rhs.format )
17753           && ( externalFormat == rhs.externalFormat )
17754           && ( formatFeatures == rhs.formatFeatures )
17755           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
17756           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
17757           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
17758           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
17759           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
17760     }
17761 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID17762     bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17763     {
17764       return !operator==( rhs );
17765     }
17766 #endif
17767 
17768 
17769 
17770   public:
17771     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
17772     void* pNext = {};
17773     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
17774     uint64_t externalFormat = {};
17775     VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
17776     VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
17777     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
17778     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
17779     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
17780     VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
17781 
17782   };
17783   static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" );
17784   static_assert( std::is_standard_layout<AndroidHardwareBufferFormatPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
17785 
17786   template <>
17787   struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatPropertiesANDROID>
17788   {
17789     using Type = AndroidHardwareBufferFormatPropertiesANDROID;
17790   };
17791 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17792 
17793 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17794   struct AndroidHardwareBufferPropertiesANDROID
17795   {
17796     static const bool allowDuplicate = false;
17797     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
17798 
17799 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17800     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
17801     : allocationSize( allocationSize_ ), memoryTypeBits( memoryTypeBits_ )
17802     {}
17803 
17804     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17805 
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17806     AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17807     {
17808       *this = rhs;
17809     }
17810 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17811 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17812     AndroidHardwareBufferPropertiesANDROID & operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17813     {
17814       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const *>( &rhs );
17815       return *this;
17816     }
17817 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17818     AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17819     {
17820       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidHardwareBufferPropertiesANDROID ) );
17821       return *this;
17822     }
17823 
17824 
operator VkAndroidHardwareBufferPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17825     operator VkAndroidHardwareBufferPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT
17826     {
17827       return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>( this );
17828     }
17829 
operator VkAndroidHardwareBufferPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17830     operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
17831     {
17832       return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( this );
17833     }
17834 
17835 
17836 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17837     auto operator<=>( AndroidHardwareBufferPropertiesANDROID const& ) const = default;
17838 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17839     bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17840     {
17841       return ( sType == rhs.sType )
17842           && ( pNext == rhs.pNext )
17843           && ( allocationSize == rhs.allocationSize )
17844           && ( memoryTypeBits == rhs.memoryTypeBits );
17845     }
17846 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID17847     bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17848     {
17849       return !operator==( rhs );
17850     }
17851 #endif
17852 
17853 
17854 
17855   public:
17856     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
17857     void* pNext = {};
17858     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
17859     uint32_t memoryTypeBits = {};
17860 
17861   };
17862   static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" );
17863   static_assert( std::is_standard_layout<AndroidHardwareBufferPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
17864 
17865   template <>
17866   struct CppType<StructureType, StructureType::eAndroidHardwareBufferPropertiesANDROID>
17867   {
17868     using Type = AndroidHardwareBufferPropertiesANDROID;
17869   };
17870 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17871 
17872 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17873   struct AndroidHardwareBufferUsageANDROID
17874   {
17875     static const bool allowDuplicate = false;
17876     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID;
17877 
17878 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17879     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID(uint64_t androidHardwareBufferUsage_ = {}) VULKAN_HPP_NOEXCEPT
17880     : androidHardwareBufferUsage( androidHardwareBufferUsage_ )
17881     {}
17882 
17883     VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17884 
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17885     AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17886     {
17887       *this = rhs;
17888     }
17889 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17890 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17891     AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17892     {
17893       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const *>( &rhs );
17894       return *this;
17895     }
17896 
operator =VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17897     AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
17898     {
17899       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidHardwareBufferUsageANDROID ) );
17900       return *this;
17901     }
17902 
17903 
operator VkAndroidHardwareBufferUsageANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17904     operator VkAndroidHardwareBufferUsageANDROID const&() const VULKAN_HPP_NOEXCEPT
17905     {
17906       return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>( this );
17907     }
17908 
operator VkAndroidHardwareBufferUsageANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17909     operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
17910     {
17911       return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>( this );
17912     }
17913 
17914 
17915 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
17916     auto operator<=>( AndroidHardwareBufferUsageANDROID const& ) const = default;
17917 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17918     bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17919     {
17920       return ( sType == rhs.sType )
17921           && ( pNext == rhs.pNext )
17922           && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
17923     }
17924 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID17925     bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
17926     {
17927       return !operator==( rhs );
17928     }
17929 #endif
17930 
17931 
17932 
17933   public:
17934     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
17935     void* pNext = {};
17936     uint64_t androidHardwareBufferUsage = {};
17937 
17938   };
17939   static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" );
17940   static_assert( std::is_standard_layout<AndroidHardwareBufferUsageANDROID>::value, "struct wrapper is not a standard layout!" );
17941 
17942   template <>
17943   struct CppType<StructureType, StructureType::eAndroidHardwareBufferUsageANDROID>
17944   {
17945     using Type = AndroidHardwareBufferUsageANDROID;
17946   };
17947 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17948 
17949 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17950   struct AndroidSurfaceCreateInfoKHR
17951   {
17952     static const bool allowDuplicate = false;
17953     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR;
17954 
17955 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17956     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {}, struct ANativeWindow* window_ = {}) VULKAN_HPP_NOEXCEPT
17957     : flags( flags_ ), window( window_ )
17958     {}
17959 
17960     VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17961 
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17962     AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17963     {
17964       *this = rhs;
17965     }
17966 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
17967 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17968     AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17969     {
17970       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const *>( &rhs );
17971       return *this;
17972     }
17973 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17974     AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
17975     {
17976       memcpy( static_cast<void *>( this ), &rhs, sizeof( AndroidSurfaceCreateInfoKHR ) );
17977       return *this;
17978     }
17979 
setPNextVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17980     AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
17981     {
17982       pNext = pNext_;
17983       return *this;
17984     }
17985 
setFlagsVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17986     AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
17987     {
17988       flags = flags_;
17989       return *this;
17990     }
17991 
setWindowVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17992     AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ ) VULKAN_HPP_NOEXCEPT
17993     {
17994       window = window_;
17995       return *this;
17996     }
17997 
17998 
operator VkAndroidSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR17999     operator VkAndroidSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
18000     {
18001       return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( this );
18002     }
18003 
operator VkAndroidSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR18004     operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
18005     {
18006       return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>( this );
18007     }
18008 
18009 
18010 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18011     auto operator<=>( AndroidSurfaceCreateInfoKHR const& ) const = default;
18012 #else
operator ==VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR18013     bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
18014     {
18015       return ( sType == rhs.sType )
18016           && ( pNext == rhs.pNext )
18017           && ( flags == rhs.flags )
18018           && ( window == rhs.window );
18019     }
18020 
operator !=VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR18021     bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
18022     {
18023       return !operator==( rhs );
18024     }
18025 #endif
18026 
18027 
18028 
18029   public:
18030     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
18031     const void* pNext = {};
18032     VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {};
18033     struct ANativeWindow* window = {};
18034 
18035   };
18036   static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
18037   static_assert( std::is_standard_layout<AndroidSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
18038 
18039   template <>
18040   struct CppType<StructureType, StructureType::eAndroidSurfaceCreateInfoKHR>
18041   {
18042     using Type = AndroidSurfaceCreateInfoKHR;
18043   };
18044 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
18045 
18046   struct ApplicationInfo
18047   {
18048     static const bool allowDuplicate = false;
18049     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo;
18050 
18051 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo18052     VULKAN_HPP_CONSTEXPR ApplicationInfo(const char* pApplicationName_ = {}, uint32_t applicationVersion_ = {}, const char* pEngineName_ = {}, uint32_t engineVersion_ = {}, uint32_t apiVersion_ = {}) VULKAN_HPP_NOEXCEPT
18053     : pApplicationName( pApplicationName_ ), applicationVersion( applicationVersion_ ), pEngineName( pEngineName_ ), engineVersion( engineVersion_ ), apiVersion( apiVersion_ )
18054     {}
18055 
18056     VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18057 
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo18058     ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
18059     {
18060       *this = rhs;
18061     }
18062 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18063 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo18064     ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
18065     {
18066       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ApplicationInfo const *>( &rhs );
18067       return *this;
18068     }
18069 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo18070     ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
18071     {
18072       memcpy( static_cast<void *>( this ), &rhs, sizeof( ApplicationInfo ) );
18073       return *this;
18074     }
18075 
setPNextVULKAN_HPP_NAMESPACE::ApplicationInfo18076     ApplicationInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18077     {
18078       pNext = pNext_;
18079       return *this;
18080     }
18081 
setPApplicationNameVULKAN_HPP_NAMESPACE::ApplicationInfo18082     ApplicationInfo & setPApplicationName( const char* pApplicationName_ ) VULKAN_HPP_NOEXCEPT
18083     {
18084       pApplicationName = pApplicationName_;
18085       return *this;
18086     }
18087 
setApplicationVersionVULKAN_HPP_NAMESPACE::ApplicationInfo18088     ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
18089     {
18090       applicationVersion = applicationVersion_;
18091       return *this;
18092     }
18093 
setPEngineNameVULKAN_HPP_NAMESPACE::ApplicationInfo18094     ApplicationInfo & setPEngineName( const char* pEngineName_ ) VULKAN_HPP_NOEXCEPT
18095     {
18096       pEngineName = pEngineName_;
18097       return *this;
18098     }
18099 
setEngineVersionVULKAN_HPP_NAMESPACE::ApplicationInfo18100     ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
18101     {
18102       engineVersion = engineVersion_;
18103       return *this;
18104     }
18105 
setApiVersionVULKAN_HPP_NAMESPACE::ApplicationInfo18106     ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
18107     {
18108       apiVersion = apiVersion_;
18109       return *this;
18110     }
18111 
18112 
operator VkApplicationInfo const&VULKAN_HPP_NAMESPACE::ApplicationInfo18113     operator VkApplicationInfo const&() const VULKAN_HPP_NOEXCEPT
18114     {
18115       return *reinterpret_cast<const VkApplicationInfo*>( this );
18116     }
18117 
operator VkApplicationInfo&VULKAN_HPP_NAMESPACE::ApplicationInfo18118     operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
18119     {
18120       return *reinterpret_cast<VkApplicationInfo*>( this );
18121     }
18122 
18123 
18124 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18125     auto operator<=>( ApplicationInfo const& ) const = default;
18126 #else
operator ==VULKAN_HPP_NAMESPACE::ApplicationInfo18127     bool operator==( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
18128     {
18129       return ( sType == rhs.sType )
18130           && ( pNext == rhs.pNext )
18131           && ( pApplicationName == rhs.pApplicationName )
18132           && ( applicationVersion == rhs.applicationVersion )
18133           && ( pEngineName == rhs.pEngineName )
18134           && ( engineVersion == rhs.engineVersion )
18135           && ( apiVersion == rhs.apiVersion );
18136     }
18137 
operator !=VULKAN_HPP_NAMESPACE::ApplicationInfo18138     bool operator!=( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
18139     {
18140       return !operator==( rhs );
18141     }
18142 #endif
18143 
18144 
18145 
18146   public:
18147     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo;
18148     const void* pNext = {};
18149     const char* pApplicationName = {};
18150     uint32_t applicationVersion = {};
18151     const char* pEngineName = {};
18152     uint32_t engineVersion = {};
18153     uint32_t apiVersion = {};
18154 
18155   };
18156   static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" );
18157   static_assert( std::is_standard_layout<ApplicationInfo>::value, "struct wrapper is not a standard layout!" );
18158 
18159   template <>
18160   struct CppType<StructureType, StructureType::eApplicationInfo>
18161   {
18162     using Type = ApplicationInfo;
18163   };
18164 
18165   struct AttachmentDescription
18166   {
18167 
18168 
18169 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription18170     VULKAN_HPP_CONSTEXPR AttachmentDescription(VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
18171     : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
18172     {}
18173 
18174     VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18175 
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription18176     AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
18177     {
18178       *this = rhs;
18179     }
18180 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18181 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription18182     AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
18183     {
18184       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription const *>( &rhs );
18185       return *this;
18186     }
18187 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription18188     AttachmentDescription & operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
18189     {
18190       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentDescription ) );
18191       return *this;
18192     }
18193 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription18194     AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
18195     {
18196       flags = flags_;
18197       return *this;
18198     }
18199 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription18200     AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
18201     {
18202       format = format_;
18203       return *this;
18204     }
18205 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription18206     AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
18207     {
18208       samples = samples_;
18209       return *this;
18210     }
18211 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription18212     AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
18213     {
18214       loadOp = loadOp_;
18215       return *this;
18216     }
18217 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription18218     AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
18219     {
18220       storeOp = storeOp_;
18221       return *this;
18222     }
18223 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription18224     AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
18225     {
18226       stencilLoadOp = stencilLoadOp_;
18227       return *this;
18228     }
18229 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription18230     AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
18231     {
18232       stencilStoreOp = stencilStoreOp_;
18233       return *this;
18234     }
18235 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription18236     AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
18237     {
18238       initialLayout = initialLayout_;
18239       return *this;
18240     }
18241 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription18242     AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
18243     {
18244       finalLayout = finalLayout_;
18245       return *this;
18246     }
18247 
18248 
operator VkAttachmentDescription const&VULKAN_HPP_NAMESPACE::AttachmentDescription18249     operator VkAttachmentDescription const&() const VULKAN_HPP_NOEXCEPT
18250     {
18251       return *reinterpret_cast<const VkAttachmentDescription*>( this );
18252     }
18253 
operator VkAttachmentDescription&VULKAN_HPP_NAMESPACE::AttachmentDescription18254     operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
18255     {
18256       return *reinterpret_cast<VkAttachmentDescription*>( this );
18257     }
18258 
18259 
18260 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18261     auto operator<=>( AttachmentDescription const& ) const = default;
18262 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription18263     bool operator==( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
18264     {
18265       return ( flags == rhs.flags )
18266           && ( format == rhs.format )
18267           && ( samples == rhs.samples )
18268           && ( loadOp == rhs.loadOp )
18269           && ( storeOp == rhs.storeOp )
18270           && ( stencilLoadOp == rhs.stencilLoadOp )
18271           && ( stencilStoreOp == rhs.stencilStoreOp )
18272           && ( initialLayout == rhs.initialLayout )
18273           && ( finalLayout == rhs.finalLayout );
18274     }
18275 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription18276     bool operator!=( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
18277     {
18278       return !operator==( rhs );
18279     }
18280 #endif
18281 
18282 
18283 
18284   public:
18285     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
18286     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
18287     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
18288     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18289     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18290     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18291     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18292     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18293     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18294 
18295   };
18296   static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" );
18297   static_assert( std::is_standard_layout<AttachmentDescription>::value, "struct wrapper is not a standard layout!" );
18298 
18299   struct AttachmentDescription2
18300   {
18301     static const bool allowDuplicate = false;
18302     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2;
18303 
18304 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription218305     VULKAN_HPP_CONSTEXPR AttachmentDescription2(VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
18306     : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ )
18307     {}
18308 
18309     VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18310 
AttachmentDescription2VULKAN_HPP_NAMESPACE::AttachmentDescription218311     AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
18312     {
18313       *this = rhs;
18314     }
18315 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18316 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription218317     AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
18318     {
18319       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription2 const *>( &rhs );
18320       return *this;
18321     }
18322 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription218323     AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
18324     {
18325       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentDescription2 ) );
18326       return *this;
18327     }
18328 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescription218329     AttachmentDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18330     {
18331       pNext = pNext_;
18332       return *this;
18333     }
18334 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription218335     AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
18336     {
18337       flags = flags_;
18338       return *this;
18339     }
18340 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription218341     AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
18342     {
18343       format = format_;
18344       return *this;
18345     }
18346 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription218347     AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
18348     {
18349       samples = samples_;
18350       return *this;
18351     }
18352 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription218353     AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
18354     {
18355       loadOp = loadOp_;
18356       return *this;
18357     }
18358 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription218359     AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
18360     {
18361       storeOp = storeOp_;
18362       return *this;
18363     }
18364 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription218365     AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
18366     {
18367       stencilLoadOp = stencilLoadOp_;
18368       return *this;
18369     }
18370 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription218371     AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
18372     {
18373       stencilStoreOp = stencilStoreOp_;
18374       return *this;
18375     }
18376 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription218377     AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
18378     {
18379       initialLayout = initialLayout_;
18380       return *this;
18381     }
18382 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription218383     AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
18384     {
18385       finalLayout = finalLayout_;
18386       return *this;
18387     }
18388 
18389 
operator VkAttachmentDescription2 const&VULKAN_HPP_NAMESPACE::AttachmentDescription218390     operator VkAttachmentDescription2 const&() const VULKAN_HPP_NOEXCEPT
18391     {
18392       return *reinterpret_cast<const VkAttachmentDescription2*>( this );
18393     }
18394 
operator VkAttachmentDescription2&VULKAN_HPP_NAMESPACE::AttachmentDescription218395     operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
18396     {
18397       return *reinterpret_cast<VkAttachmentDescription2*>( this );
18398     }
18399 
18400 
18401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18402     auto operator<=>( AttachmentDescription2 const& ) const = default;
18403 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription218404     bool operator==( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18405     {
18406       return ( sType == rhs.sType )
18407           && ( pNext == rhs.pNext )
18408           && ( flags == rhs.flags )
18409           && ( format == rhs.format )
18410           && ( samples == rhs.samples )
18411           && ( loadOp == rhs.loadOp )
18412           && ( storeOp == rhs.storeOp )
18413           && ( stencilLoadOp == rhs.stencilLoadOp )
18414           && ( stencilStoreOp == rhs.stencilStoreOp )
18415           && ( initialLayout == rhs.initialLayout )
18416           && ( finalLayout == rhs.finalLayout );
18417     }
18418 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription218419     bool operator!=( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18420     {
18421       return !operator==( rhs );
18422     }
18423 #endif
18424 
18425 
18426 
18427   public:
18428     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2;
18429     const void* pNext = {};
18430     VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
18431     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
18432     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
18433     VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18434     VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18435     VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
18436     VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
18437     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18438     VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18439 
18440   };
18441   static_assert( sizeof( AttachmentDescription2 ) == sizeof( VkAttachmentDescription2 ), "struct and wrapper have different size!" );
18442   static_assert( std::is_standard_layout<AttachmentDescription2>::value, "struct wrapper is not a standard layout!" );
18443 
18444   template <>
18445   struct CppType<StructureType, StructureType::eAttachmentDescription2>
18446   {
18447     using Type = AttachmentDescription2;
18448   };
18449   using AttachmentDescription2KHR = AttachmentDescription2;
18450 
18451   struct AttachmentDescriptionStencilLayout
18452   {
18453     static const bool allowDuplicate = false;
18454     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout;
18455 
18456 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18457     VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
18458     : stencilInitialLayout( stencilInitialLayout_ ), stencilFinalLayout( stencilFinalLayout_ )
18459     {}
18460 
18461     VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18462 
AttachmentDescriptionStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18463     AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18464     {
18465       *this = rhs;
18466     }
18467 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18468 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18469     AttachmentDescriptionStencilLayout & operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18470     {
18471       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const *>( &rhs );
18472       return *this;
18473     }
18474 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18475     AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18476     {
18477       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentDescriptionStencilLayout ) );
18478       return *this;
18479     }
18480 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18481     AttachmentDescriptionStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
18482     {
18483       pNext = pNext_;
18484       return *this;
18485     }
18486 
setStencilInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18487     AttachmentDescriptionStencilLayout & setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
18488     {
18489       stencilInitialLayout = stencilInitialLayout_;
18490       return *this;
18491     }
18492 
setStencilFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18493     AttachmentDescriptionStencilLayout & setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
18494     {
18495       stencilFinalLayout = stencilFinalLayout_;
18496       return *this;
18497     }
18498 
18499 
operator VkAttachmentDescriptionStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18500     operator VkAttachmentDescriptionStencilLayout const&() const VULKAN_HPP_NOEXCEPT
18501     {
18502       return *reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>( this );
18503     }
18504 
operator VkAttachmentDescriptionStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18505     operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
18506     {
18507       return *reinterpret_cast<VkAttachmentDescriptionStencilLayout*>( this );
18508     }
18509 
18510 
18511 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18512     auto operator<=>( AttachmentDescriptionStencilLayout const& ) const = default;
18513 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18514     bool operator==( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18515     {
18516       return ( sType == rhs.sType )
18517           && ( pNext == rhs.pNext )
18518           && ( stencilInitialLayout == rhs.stencilInitialLayout )
18519           && ( stencilFinalLayout == rhs.stencilFinalLayout );
18520     }
18521 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout18522     bool operator!=( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18523     {
18524       return !operator==( rhs );
18525     }
18526 #endif
18527 
18528 
18529 
18530   public:
18531     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout;
18532     void* pNext = {};
18533     VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18534     VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18535 
18536   };
18537   static_assert( sizeof( AttachmentDescriptionStencilLayout ) == sizeof( VkAttachmentDescriptionStencilLayout ), "struct and wrapper have different size!" );
18538   static_assert( std::is_standard_layout<AttachmentDescriptionStencilLayout>::value, "struct wrapper is not a standard layout!" );
18539 
18540   template <>
18541   struct CppType<StructureType, StructureType::eAttachmentDescriptionStencilLayout>
18542   {
18543     using Type = AttachmentDescriptionStencilLayout;
18544   };
18545   using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
18546 
18547   struct AttachmentReference
18548   {
18549 
18550 
18551 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference18552     VULKAN_HPP_CONSTEXPR AttachmentReference(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
18553     : attachment( attachment_ ), layout( layout_ )
18554     {}
18555 
18556     VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18557 
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference18558     AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
18559     {
18560       *this = rhs;
18561     }
18562 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18563 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference18564     AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
18565     {
18566       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference const *>( &rhs );
18567       return *this;
18568     }
18569 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference18570     AttachmentReference & operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
18571     {
18572       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentReference ) );
18573       return *this;
18574     }
18575 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference18576     AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
18577     {
18578       attachment = attachment_;
18579       return *this;
18580     }
18581 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference18582     AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
18583     {
18584       layout = layout_;
18585       return *this;
18586     }
18587 
18588 
operator VkAttachmentReference const&VULKAN_HPP_NAMESPACE::AttachmentReference18589     operator VkAttachmentReference const&() const VULKAN_HPP_NOEXCEPT
18590     {
18591       return *reinterpret_cast<const VkAttachmentReference*>( this );
18592     }
18593 
operator VkAttachmentReference&VULKAN_HPP_NAMESPACE::AttachmentReference18594     operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
18595     {
18596       return *reinterpret_cast<VkAttachmentReference*>( this );
18597     }
18598 
18599 
18600 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18601     auto operator<=>( AttachmentReference const& ) const = default;
18602 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference18603     bool operator==( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
18604     {
18605       return ( attachment == rhs.attachment )
18606           && ( layout == rhs.layout );
18607     }
18608 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference18609     bool operator!=( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT
18610     {
18611       return !operator==( rhs );
18612     }
18613 #endif
18614 
18615 
18616 
18617   public:
18618     uint32_t attachment = {};
18619     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18620 
18621   };
18622   static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" );
18623   static_assert( std::is_standard_layout<AttachmentReference>::value, "struct wrapper is not a standard layout!" );
18624 
18625   struct AttachmentReference2
18626   {
18627     static const bool allowDuplicate = false;
18628     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2;
18629 
18630 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference218631     VULKAN_HPP_CONSTEXPR AttachmentReference2(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT
18632     : attachment( attachment_ ), layout( layout_ ), aspectMask( aspectMask_ )
18633     {}
18634 
18635     VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18636 
AttachmentReference2VULKAN_HPP_NAMESPACE::AttachmentReference218637     AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
18638     {
18639       *this = rhs;
18640     }
18641 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18642 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference218643     AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
18644     {
18645       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference2 const *>( &rhs );
18646       return *this;
18647     }
18648 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference218649     AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
18650     {
18651       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentReference2 ) );
18652       return *this;
18653     }
18654 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReference218655     AttachmentReference2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
18656     {
18657       pNext = pNext_;
18658       return *this;
18659     }
18660 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference218661     AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
18662     {
18663       attachment = attachment_;
18664       return *this;
18665     }
18666 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference218667     AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
18668     {
18669       layout = layout_;
18670       return *this;
18671     }
18672 
setAspectMaskVULKAN_HPP_NAMESPACE::AttachmentReference218673     AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
18674     {
18675       aspectMask = aspectMask_;
18676       return *this;
18677     }
18678 
18679 
operator VkAttachmentReference2 const&VULKAN_HPP_NAMESPACE::AttachmentReference218680     operator VkAttachmentReference2 const&() const VULKAN_HPP_NOEXCEPT
18681     {
18682       return *reinterpret_cast<const VkAttachmentReference2*>( this );
18683     }
18684 
operator VkAttachmentReference2&VULKAN_HPP_NAMESPACE::AttachmentReference218685     operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
18686     {
18687       return *reinterpret_cast<VkAttachmentReference2*>( this );
18688     }
18689 
18690 
18691 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18692     auto operator<=>( AttachmentReference2 const& ) const = default;
18693 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference218694     bool operator==( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18695     {
18696       return ( sType == rhs.sType )
18697           && ( pNext == rhs.pNext )
18698           && ( attachment == rhs.attachment )
18699           && ( layout == rhs.layout )
18700           && ( aspectMask == rhs.aspectMask );
18701     }
18702 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference218703     bool operator!=( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT
18704     {
18705       return !operator==( rhs );
18706     }
18707 #endif
18708 
18709 
18710 
18711   public:
18712     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2;
18713     const void* pNext = {};
18714     uint32_t attachment = {};
18715     VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18716     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
18717 
18718   };
18719   static_assert( sizeof( AttachmentReference2 ) == sizeof( VkAttachmentReference2 ), "struct and wrapper have different size!" );
18720   static_assert( std::is_standard_layout<AttachmentReference2>::value, "struct wrapper is not a standard layout!" );
18721 
18722   template <>
18723   struct CppType<StructureType, StructureType::eAttachmentReference2>
18724   {
18725     using Type = AttachmentReference2;
18726   };
18727   using AttachmentReference2KHR = AttachmentReference2;
18728 
18729   struct AttachmentReferenceStencilLayout
18730   {
18731     static const bool allowDuplicate = false;
18732     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout;
18733 
18734 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18735     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
18736     : stencilLayout( stencilLayout_ )
18737     {}
18738 
18739     VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18740 
AttachmentReferenceStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18741     AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18742     {
18743       *this = rhs;
18744     }
18745 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18746 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18747     AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18748     {
18749       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const *>( &rhs );
18750       return *this;
18751     }
18752 
operator =VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18753     AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
18754     {
18755       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentReferenceStencilLayout ) );
18756       return *this;
18757     }
18758 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18759     AttachmentReferenceStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
18760     {
18761       pNext = pNext_;
18762       return *this;
18763     }
18764 
setStencilLayoutVULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18765     AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT
18766     {
18767       stencilLayout = stencilLayout_;
18768       return *this;
18769     }
18770 
18771 
operator VkAttachmentReferenceStencilLayout const&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18772     operator VkAttachmentReferenceStencilLayout const&() const VULKAN_HPP_NOEXCEPT
18773     {
18774       return *reinterpret_cast<const VkAttachmentReferenceStencilLayout*>( this );
18775     }
18776 
operator VkAttachmentReferenceStencilLayout&VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18777     operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
18778     {
18779       return *reinterpret_cast<VkAttachmentReferenceStencilLayout*>( this );
18780     }
18781 
18782 
18783 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18784     auto operator<=>( AttachmentReferenceStencilLayout const& ) const = default;
18785 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18786     bool operator==( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18787     {
18788       return ( sType == rhs.sType )
18789           && ( pNext == rhs.pNext )
18790           && ( stencilLayout == rhs.stencilLayout );
18791     }
18792 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout18793     bool operator!=( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
18794     {
18795       return !operator==( rhs );
18796     }
18797 #endif
18798 
18799 
18800 
18801   public:
18802     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout;
18803     void* pNext = {};
18804     VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
18805 
18806   };
18807   static_assert( sizeof( AttachmentReferenceStencilLayout ) == sizeof( VkAttachmentReferenceStencilLayout ), "struct and wrapper have different size!" );
18808   static_assert( std::is_standard_layout<AttachmentReferenceStencilLayout>::value, "struct wrapper is not a standard layout!" );
18809 
18810   template <>
18811   struct CppType<StructureType, StructureType::eAttachmentReferenceStencilLayout>
18812   {
18813     using Type = AttachmentReferenceStencilLayout;
18814   };
18815   using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
18816 
18817   struct Extent2D
18818   {
18819 
18820 
18821 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent2DVULKAN_HPP_NAMESPACE::Extent2D18822     VULKAN_HPP_CONSTEXPR Extent2D(uint32_t width_ = {}, uint32_t height_ = {}) VULKAN_HPP_NOEXCEPT
18823     : width( width_ ), height( height_ )
18824     {}
18825 
18826     VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18827 
Extent2DVULKAN_HPP_NAMESPACE::Extent2D18828     Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
18829     {
18830       *this = rhs;
18831     }
18832 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18833 
operator =VULKAN_HPP_NAMESPACE::Extent2D18834     Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
18835     {
18836       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent2D const *>( &rhs );
18837       return *this;
18838     }
18839 
operator =VULKAN_HPP_NAMESPACE::Extent2D18840     Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT
18841     {
18842       memcpy( static_cast<void *>( this ), &rhs, sizeof( Extent2D ) );
18843       return *this;
18844     }
18845 
setWidthVULKAN_HPP_NAMESPACE::Extent2D18846     Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
18847     {
18848       width = width_;
18849       return *this;
18850     }
18851 
setHeightVULKAN_HPP_NAMESPACE::Extent2D18852     Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
18853     {
18854       height = height_;
18855       return *this;
18856     }
18857 
18858 
operator VkExtent2D const&VULKAN_HPP_NAMESPACE::Extent2D18859     operator VkExtent2D const&() const VULKAN_HPP_NOEXCEPT
18860     {
18861       return *reinterpret_cast<const VkExtent2D*>( this );
18862     }
18863 
operator VkExtent2D&VULKAN_HPP_NAMESPACE::Extent2D18864     operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
18865     {
18866       return *reinterpret_cast<VkExtent2D*>( this );
18867     }
18868 
18869 
18870 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18871     auto operator<=>( Extent2D const& ) const = default;
18872 #else
operator ==VULKAN_HPP_NAMESPACE::Extent2D18873     bool operator==( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
18874     {
18875       return ( width == rhs.width )
18876           && ( height == rhs.height );
18877     }
18878 
operator !=VULKAN_HPP_NAMESPACE::Extent2D18879     bool operator!=( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT
18880     {
18881       return !operator==( rhs );
18882     }
18883 #endif
18884 
18885 
18886 
18887   public:
18888     uint32_t width = {};
18889     uint32_t height = {};
18890 
18891   };
18892   static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" );
18893   static_assert( std::is_standard_layout<Extent2D>::value, "struct wrapper is not a standard layout!" );
18894 
18895   struct SampleLocationEXT
18896   {
18897 
18898 
18899 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT18900     VULKAN_HPP_CONSTEXPR SampleLocationEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
18901     : x( x_ ), y( y_ )
18902     {}
18903 
18904     VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18905 
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT18906     SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18907     {
18908       *this = rhs;
18909     }
18910 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18911 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT18912     SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18913     {
18914       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationEXT const *>( &rhs );
18915       return *this;
18916     }
18917 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT18918     SampleLocationEXT & operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18919     {
18920       memcpy( static_cast<void *>( this ), &rhs, sizeof( SampleLocationEXT ) );
18921       return *this;
18922     }
18923 
setXVULKAN_HPP_NAMESPACE::SampleLocationEXT18924     SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
18925     {
18926       x = x_;
18927       return *this;
18928     }
18929 
setYVULKAN_HPP_NAMESPACE::SampleLocationEXT18930     SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
18931     {
18932       y = y_;
18933       return *this;
18934     }
18935 
18936 
operator VkSampleLocationEXT const&VULKAN_HPP_NAMESPACE::SampleLocationEXT18937     operator VkSampleLocationEXT const&() const VULKAN_HPP_NOEXCEPT
18938     {
18939       return *reinterpret_cast<const VkSampleLocationEXT*>( this );
18940     }
18941 
operator VkSampleLocationEXT&VULKAN_HPP_NAMESPACE::SampleLocationEXT18942     operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
18943     {
18944       return *reinterpret_cast<VkSampleLocationEXT*>( this );
18945     }
18946 
18947 
18948 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
18949     auto operator<=>( SampleLocationEXT const& ) const = default;
18950 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationEXT18951     bool operator==( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
18952     {
18953       return ( x == rhs.x )
18954           && ( y == rhs.y );
18955     }
18956 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationEXT18957     bool operator!=( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
18958     {
18959       return !operator==( rhs );
18960     }
18961 #endif
18962 
18963 
18964 
18965   public:
18966     float x = {};
18967     float y = {};
18968 
18969   };
18970   static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" );
18971   static_assert( std::is_standard_layout<SampleLocationEXT>::value, "struct wrapper is not a standard layout!" );
18972 
18973   struct SampleLocationsInfoEXT
18974   {
18975     static const bool allowDuplicate = false;
18976     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT;
18977 
18978 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18979     VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ = {}, uint32_t sampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT
18980     : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( sampleLocationsCount_ ), pSampleLocations( pSampleLocations_ )
18981     {}
18982 
18983     VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
18984 
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18985     SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18986     {
18987       *this = rhs;
18988     }
18989 
18990 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18991     SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ )
18992     : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
18993     {}
18994 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
18995 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
18996 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT18997     SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
18998     {
18999       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const *>( &rhs );
19000       return *this;
19001     }
19002 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19003     SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19004     {
19005       memcpy( static_cast<void *>( this ), &rhs, sizeof( SampleLocationsInfoEXT ) );
19006       return *this;
19007     }
19008 
setPNextVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19009     SampleLocationsInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19010     {
19011       pNext = pNext_;
19012       return *this;
19013     }
19014 
setSampleLocationsPerPixelVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19015     SampleLocationsInfoEXT & setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
19016     {
19017       sampleLocationsPerPixel = sampleLocationsPerPixel_;
19018       return *this;
19019     }
19020 
setSampleLocationGridSizeVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19021     SampleLocationsInfoEXT & setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
19022     {
19023       sampleLocationGridSize = sampleLocationGridSize_;
19024       return *this;
19025     }
19026 
setSampleLocationsCountVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19027     SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
19028     {
19029       sampleLocationsCount = sampleLocationsCount_;
19030       return *this;
19031     }
19032 
setPSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19033     SampleLocationsInfoEXT & setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
19034     {
19035       pSampleLocations = pSampleLocations_;
19036       return *this;
19037     }
19038 
19039 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19040     SampleLocationsInfoEXT & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
19041     {
19042       sampleLocationsCount = static_cast<uint32_t>( sampleLocations_.size() );
19043       pSampleLocations = sampleLocations_.data();
19044       return *this;
19045     }
19046 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19047 
19048 
operator VkSampleLocationsInfoEXT const&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19049     operator VkSampleLocationsInfoEXT const&() const VULKAN_HPP_NOEXCEPT
19050     {
19051       return *reinterpret_cast<const VkSampleLocationsInfoEXT*>( this );
19052     }
19053 
operator VkSampleLocationsInfoEXT&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19054     operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
19055     {
19056       return *reinterpret_cast<VkSampleLocationsInfoEXT*>( this );
19057     }
19058 
19059 
19060 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19061     auto operator<=>( SampleLocationsInfoEXT const& ) const = default;
19062 #else
operator ==VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19063     bool operator==( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19064     {
19065       return ( sType == rhs.sType )
19066           && ( pNext == rhs.pNext )
19067           && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel )
19068           && ( sampleLocationGridSize == rhs.sampleLocationGridSize )
19069           && ( sampleLocationsCount == rhs.sampleLocationsCount )
19070           && ( pSampleLocations == rhs.pSampleLocations );
19071     }
19072 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19073     bool operator!=( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19074     {
19075       return !operator==( rhs );
19076     }
19077 #endif
19078 
19079 
19080 
19081   public:
19082     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT;
19083     const void* pNext = {};
19084     VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
19085     VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {};
19086     uint32_t sampleLocationsCount = {};
19087     const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations = {};
19088 
19089   };
19090   static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" );
19091   static_assert( std::is_standard_layout<SampleLocationsInfoEXT>::value, "struct wrapper is not a standard layout!" );
19092 
19093   template <>
19094   struct CppType<StructureType, StructureType::eSampleLocationsInfoEXT>
19095   {
19096     using Type = SampleLocationsInfoEXT;
19097   };
19098 
19099   struct AttachmentSampleLocationsEXT
19100   {
19101 
19102 
19103 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19104     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT(uint32_t attachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
19105     : attachmentIndex( attachmentIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
19106     {}
19107 
19108     VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19109 
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19110     AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19111     {
19112       *this = rhs;
19113     }
19114 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19115 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19116     AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19117     {
19118       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const *>( &rhs );
19119       return *this;
19120     }
19121 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19122     AttachmentSampleLocationsEXT & operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
19123     {
19124       memcpy( static_cast<void *>( this ), &rhs, sizeof( AttachmentSampleLocationsEXT ) );
19125       return *this;
19126     }
19127 
setAttachmentIndexVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19128     AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT
19129     {
19130       attachmentIndex = attachmentIndex_;
19131       return *this;
19132     }
19133 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19134     AttachmentSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
19135     {
19136       sampleLocationsInfo = sampleLocationsInfo_;
19137       return *this;
19138     }
19139 
19140 
operator VkAttachmentSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19141     operator VkAttachmentSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
19142     {
19143       return *reinterpret_cast<const VkAttachmentSampleLocationsEXT*>( this );
19144     }
19145 
operator VkAttachmentSampleLocationsEXT&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19146     operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
19147     {
19148       return *reinterpret_cast<VkAttachmentSampleLocationsEXT*>( this );
19149     }
19150 
19151 
19152 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19153     auto operator<=>( AttachmentSampleLocationsEXT const& ) const = default;
19154 #else
operator ==VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19155     bool operator==( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19156     {
19157       return ( attachmentIndex == rhs.attachmentIndex )
19158           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
19159     }
19160 
operator !=VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19161     bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
19162     {
19163       return !operator==( rhs );
19164     }
19165 #endif
19166 
19167 
19168 
19169   public:
19170     uint32_t attachmentIndex = {};
19171     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
19172 
19173   };
19174   static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" );
19175   static_assert( std::is_standard_layout<AttachmentSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
19176 
19177   struct BaseInStructure
19178   {
19179 
19180 
19181 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure19182     BaseInStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT
19183     : sType( sType_ )
19184     {}
19185 
19186     BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19187 
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure19188     BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19189     {
19190       *this = rhs;
19191     }
19192 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19193 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure19194     BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19195     {
19196       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseInStructure const *>( &rhs );
19197       return *this;
19198     }
19199 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure19200     BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19201     {
19202       memcpy( static_cast<void *>( this ), &rhs, sizeof( BaseInStructure ) );
19203       return *this;
19204     }
19205 
setPNextVULKAN_HPP_NAMESPACE::BaseInStructure19206     BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
19207     {
19208       pNext = pNext_;
19209       return *this;
19210     }
19211 
19212 
operator VkBaseInStructure const&VULKAN_HPP_NAMESPACE::BaseInStructure19213     operator VkBaseInStructure const&() const VULKAN_HPP_NOEXCEPT
19214     {
19215       return *reinterpret_cast<const VkBaseInStructure*>( this );
19216     }
19217 
operator VkBaseInStructure&VULKAN_HPP_NAMESPACE::BaseInStructure19218     operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
19219     {
19220       return *reinterpret_cast<VkBaseInStructure*>( this );
19221     }
19222 
19223 
19224 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19225     auto operator<=>( BaseInStructure const& ) const = default;
19226 #else
operator ==VULKAN_HPP_NAMESPACE::BaseInStructure19227     bool operator==( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19228     {
19229       return ( sType == rhs.sType )
19230           && ( pNext == rhs.pNext );
19231     }
19232 
operator !=VULKAN_HPP_NAMESPACE::BaseInStructure19233     bool operator!=( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19234     {
19235       return !operator==( rhs );
19236     }
19237 #endif
19238 
19239 
19240 
19241   public:
19242     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
19243     const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext = {};
19244 
19245   };
19246   static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" );
19247   static_assert( std::is_standard_layout<BaseInStructure>::value, "struct wrapper is not a standard layout!" );
19248 
19249   struct BaseOutStructure
19250   {
19251 
19252 
19253 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure19254     BaseOutStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT
19255     : sType( sType_ )
19256     {}
19257 
19258     BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19259 
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure19260     BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19261     {
19262       *this = rhs;
19263     }
19264 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19265 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure19266     BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19267     {
19268       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseOutStructure const *>( &rhs );
19269       return *this;
19270     }
19271 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure19272     BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
19273     {
19274       memcpy( static_cast<void *>( this ), &rhs, sizeof( BaseOutStructure ) );
19275       return *this;
19276     }
19277 
setPNextVULKAN_HPP_NAMESPACE::BaseOutStructure19278     BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext_ ) VULKAN_HPP_NOEXCEPT
19279     {
19280       pNext = pNext_;
19281       return *this;
19282     }
19283 
19284 
operator VkBaseOutStructure const&VULKAN_HPP_NAMESPACE::BaseOutStructure19285     operator VkBaseOutStructure const&() const VULKAN_HPP_NOEXCEPT
19286     {
19287       return *reinterpret_cast<const VkBaseOutStructure*>( this );
19288     }
19289 
operator VkBaseOutStructure&VULKAN_HPP_NAMESPACE::BaseOutStructure19290     operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
19291     {
19292       return *reinterpret_cast<VkBaseOutStructure*>( this );
19293     }
19294 
19295 
19296 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19297     auto operator<=>( BaseOutStructure const& ) const = default;
19298 #else
operator ==VULKAN_HPP_NAMESPACE::BaseOutStructure19299     bool operator==( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19300     {
19301       return ( sType == rhs.sType )
19302           && ( pNext == rhs.pNext );
19303     }
19304 
operator !=VULKAN_HPP_NAMESPACE::BaseOutStructure19305     bool operator!=( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT
19306     {
19307       return !operator==( rhs );
19308     }
19309 #endif
19310 
19311 
19312 
19313   public:
19314     VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
19315     struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext = {};
19316 
19317   };
19318   static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" );
19319   static_assert( std::is_standard_layout<BaseOutStructure>::value, "struct wrapper is not a standard layout!" );
19320 
19321   class DeviceMemory
19322   {
19323   public:
19324     using CType = VkDeviceMemory;
19325 
19326     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory;
19327     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
19328 
19329   public:
DeviceMemory()19330     VULKAN_HPP_CONSTEXPR DeviceMemory() VULKAN_HPP_NOEXCEPT
19331       : m_deviceMemory(VK_NULL_HANDLE)
19332     {}
19333 
DeviceMemory(std::nullptr_t)19334     VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
19335       : m_deviceMemory(VK_NULL_HANDLE)
19336     {}
19337 
DeviceMemory(VkDeviceMemory deviceMemory)19338     VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT
19339       : m_deviceMemory( deviceMemory )
19340     {}
19341 
19342 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeviceMemory deviceMemory)19343     DeviceMemory & operator=(VkDeviceMemory deviceMemory) VULKAN_HPP_NOEXCEPT
19344     {
19345       m_deviceMemory = deviceMemory;
19346       return *this;
19347     }
19348 #endif
19349 
operator =(std::nullptr_t)19350     DeviceMemory & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
19351     {
19352       m_deviceMemory = VK_NULL_HANDLE;
19353       return *this;
19354     }
19355 
19356 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19357     auto operator<=>( DeviceMemory const& ) const = default;
19358 #else
operator ==(DeviceMemory const & rhs) const19359     bool operator==( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
19360     {
19361       return m_deviceMemory == rhs.m_deviceMemory;
19362     }
19363 
operator !=(DeviceMemory const & rhs) const19364     bool operator!=(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
19365     {
19366       return m_deviceMemory != rhs.m_deviceMemory;
19367     }
19368 
operator <(DeviceMemory const & rhs) const19369     bool operator<(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT
19370     {
19371       return m_deviceMemory < rhs.m_deviceMemory;
19372     }
19373 #endif
19374 
operator VkDeviceMemory() const19375     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const VULKAN_HPP_NOEXCEPT
19376     {
19377       return m_deviceMemory;
19378     }
19379 
operator bool() const19380     explicit operator bool() const VULKAN_HPP_NOEXCEPT
19381     {
19382       return m_deviceMemory != VK_NULL_HANDLE;
19383     }
19384 
operator !() const19385     bool operator!() const VULKAN_HPP_NOEXCEPT
19386     {
19387       return m_deviceMemory == VK_NULL_HANDLE;
19388     }
19389 
19390   private:
19391     VkDeviceMemory m_deviceMemory;
19392   };
19393   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" );
19394 
19395   template <>
19396   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeviceMemory>
19397   {
19398     using type = VULKAN_HPP_NAMESPACE::DeviceMemory;
19399   };
19400 
19401   template <>
19402   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory>
19403   {
19404     using Type = VULKAN_HPP_NAMESPACE::DeviceMemory;
19405   };
19406 
19407 
19408   template <>
19409   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory>
19410   {
19411     using Type = VULKAN_HPP_NAMESPACE::DeviceMemory;
19412   };
19413 
19414 
19415   template <>
19416   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DeviceMemory>
19417   {
19418     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
19419   };
19420 
19421   struct BindAccelerationStructureMemoryInfoKHR
19422   {
19423     static const bool allowDuplicate = false;
19424     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoKHR;
19425 
19426 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19427     VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT
19428     : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
19429     {}
19430 
19431     VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoKHR( BindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19432 
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19433     BindAccelerationStructureMemoryInfoKHR( VkBindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19434     {
19435       *this = rhs;
19436     }
19437 
19438 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindAccelerationStructureMemoryInfoKHRVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19439     BindAccelerationStructureMemoryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_, VULKAN_HPP_NAMESPACE::DeviceMemory memory_, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ )
19440     : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
19441     {}
19442 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19443 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19444 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19445     BindAccelerationStructureMemoryInfoKHR & operator=( VkBindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19446     {
19447       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR const *>( &rhs );
19448       return *this;
19449     }
19450 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19451     BindAccelerationStructureMemoryInfoKHR & operator=( BindAccelerationStructureMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
19452     {
19453       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindAccelerationStructureMemoryInfoKHR ) );
19454       return *this;
19455     }
19456 
setPNextVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19457     BindAccelerationStructureMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19458     {
19459       pNext = pNext_;
19460       return *this;
19461     }
19462 
setAccelerationStructureVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19463     BindAccelerationStructureMemoryInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
19464     {
19465       accelerationStructure = accelerationStructure_;
19466       return *this;
19467     }
19468 
setMemoryVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19469     BindAccelerationStructureMemoryInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
19470     {
19471       memory = memory_;
19472       return *this;
19473     }
19474 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19475     BindAccelerationStructureMemoryInfoKHR & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
19476     {
19477       memoryOffset = memoryOffset_;
19478       return *this;
19479     }
19480 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19481     BindAccelerationStructureMemoryInfoKHR & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
19482     {
19483       deviceIndexCount = deviceIndexCount_;
19484       return *this;
19485     }
19486 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19487     BindAccelerationStructureMemoryInfoKHR & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
19488     {
19489       pDeviceIndices = pDeviceIndices_;
19490       return *this;
19491     }
19492 
19493 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19494     BindAccelerationStructureMemoryInfoKHR & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
19495     {
19496       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
19497       pDeviceIndices = deviceIndices_.data();
19498       return *this;
19499     }
19500 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19501 
19502 
operator VkBindAccelerationStructureMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19503     operator VkBindAccelerationStructureMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
19504     {
19505       return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR*>( this );
19506     }
19507 
operator VkBindAccelerationStructureMemoryInfoKHR&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19508     operator VkBindAccelerationStructureMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
19509     {
19510       return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoKHR*>( this );
19511     }
19512 
19513 
19514 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19515     auto operator<=>( BindAccelerationStructureMemoryInfoKHR const& ) const = default;
19516 #else
operator ==VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19517     bool operator==( BindAccelerationStructureMemoryInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
19518     {
19519       return ( sType == rhs.sType )
19520           && ( pNext == rhs.pNext )
19521           && ( accelerationStructure == rhs.accelerationStructure )
19522           && ( memory == rhs.memory )
19523           && ( memoryOffset == rhs.memoryOffset )
19524           && ( deviceIndexCount == rhs.deviceIndexCount )
19525           && ( pDeviceIndices == rhs.pDeviceIndices );
19526     }
19527 
operator !=VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR19528     bool operator!=( BindAccelerationStructureMemoryInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
19529     {
19530       return !operator==( rhs );
19531     }
19532 #endif
19533 
19534 
19535 
19536   public:
19537     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoKHR;
19538     const void* pNext = {};
19539     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
19540     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
19541     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
19542     uint32_t deviceIndexCount = {};
19543     const uint32_t* pDeviceIndices = {};
19544 
19545   };
19546   static_assert( sizeof( BindAccelerationStructureMemoryInfoKHR ) == sizeof( VkBindAccelerationStructureMemoryInfoKHR ), "struct and wrapper have different size!" );
19547   static_assert( std::is_standard_layout<BindAccelerationStructureMemoryInfoKHR>::value, "struct wrapper is not a standard layout!" );
19548 
19549   template <>
19550   struct CppType<StructureType, StructureType::eBindAccelerationStructureMemoryInfoKHR>
19551   {
19552     using Type = BindAccelerationStructureMemoryInfoKHR;
19553   };
19554   using BindAccelerationStructureMemoryInfoNV = BindAccelerationStructureMemoryInfoKHR;
19555 
19556   struct BindBufferMemoryDeviceGroupInfo
19557   {
19558     static const bool allowDuplicate = false;
19559     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo;
19560 
19561 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19562     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT
19563     : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ )
19564     {}
19565 
19566     VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19567 
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19568     BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19569     {
19570       *this = rhs;
19571     }
19572 
19573 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19574     BindBufferMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ )
19575     : deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
19576     {}
19577 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19578 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19579 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19580     BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19581     {
19582       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const *>( &rhs );
19583       return *this;
19584     }
19585 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19586     BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19587     {
19588       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindBufferMemoryDeviceGroupInfo ) );
19589       return *this;
19590     }
19591 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19592     BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19593     {
19594       pNext = pNext_;
19595       return *this;
19596     }
19597 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19598     BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
19599     {
19600       deviceIndexCount = deviceIndexCount_;
19601       return *this;
19602     }
19603 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19604     BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
19605     {
19606       pDeviceIndices = pDeviceIndices_;
19607       return *this;
19608     }
19609 
19610 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19611     BindBufferMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
19612     {
19613       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
19614       pDeviceIndices = deviceIndices_.data();
19615       return *this;
19616     }
19617 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19618 
19619 
operator VkBindBufferMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19620     operator VkBindBufferMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
19621     {
19622       return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>( this );
19623     }
19624 
operator VkBindBufferMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19625     operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
19626     {
19627       return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>( this );
19628     }
19629 
19630 
19631 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19632     auto operator<=>( BindBufferMemoryDeviceGroupInfo const& ) const = default;
19633 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19634     bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19635     {
19636       return ( sType == rhs.sType )
19637           && ( pNext == rhs.pNext )
19638           && ( deviceIndexCount == rhs.deviceIndexCount )
19639           && ( pDeviceIndices == rhs.pDeviceIndices );
19640     }
19641 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo19642     bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19643     {
19644       return !operator==( rhs );
19645     }
19646 #endif
19647 
19648 
19649 
19650   public:
19651     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
19652     const void* pNext = {};
19653     uint32_t deviceIndexCount = {};
19654     const uint32_t* pDeviceIndices = {};
19655 
19656   };
19657   static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
19658   static_assert( std::is_standard_layout<BindBufferMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
19659 
19660   template <>
19661   struct CppType<StructureType, StructureType::eBindBufferMemoryDeviceGroupInfo>
19662   {
19663     using Type = BindBufferMemoryDeviceGroupInfo;
19664   };
19665   using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
19666 
19667   struct BindBufferMemoryInfo
19668   {
19669     static const bool allowDuplicate = false;
19670     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo;
19671 
19672 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19673     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT
19674     : buffer( buffer_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
19675     {}
19676 
19677     VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19678 
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19679     BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19680     {
19681       *this = rhs;
19682     }
19683 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19684 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19685     BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19686     {
19687       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const *>( &rhs );
19688       return *this;
19689     }
19690 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19691     BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19692     {
19693       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindBufferMemoryInfo ) );
19694       return *this;
19695     }
19696 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19697     BindBufferMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19698     {
19699       pNext = pNext_;
19700       return *this;
19701     }
19702 
setBufferVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19703     BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
19704     {
19705       buffer = buffer_;
19706       return *this;
19707     }
19708 
setMemoryVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19709     BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
19710     {
19711       memory = memory_;
19712       return *this;
19713     }
19714 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19715     BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
19716     {
19717       memoryOffset = memoryOffset_;
19718       return *this;
19719     }
19720 
19721 
operator VkBindBufferMemoryInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19722     operator VkBindBufferMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
19723     {
19724       return *reinterpret_cast<const VkBindBufferMemoryInfo*>( this );
19725     }
19726 
operator VkBindBufferMemoryInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19727     operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
19728     {
19729       return *reinterpret_cast<VkBindBufferMemoryInfo*>( this );
19730     }
19731 
19732 
19733 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19734     auto operator<=>( BindBufferMemoryInfo const& ) const = default;
19735 #else
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19736     bool operator==( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19737     {
19738       return ( sType == rhs.sType )
19739           && ( pNext == rhs.pNext )
19740           && ( buffer == rhs.buffer )
19741           && ( memory == rhs.memory )
19742           && ( memoryOffset == rhs.memoryOffset );
19743     }
19744 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo19745     bool operator!=( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
19746     {
19747       return !operator==( rhs );
19748     }
19749 #endif
19750 
19751 
19752 
19753   public:
19754     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo;
19755     const void* pNext = {};
19756     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
19757     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
19758     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
19759 
19760   };
19761   static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" );
19762   static_assert( std::is_standard_layout<BindBufferMemoryInfo>::value, "struct wrapper is not a standard layout!" );
19763 
19764   template <>
19765   struct CppType<StructureType, StructureType::eBindBufferMemoryInfo>
19766   {
19767     using Type = BindBufferMemoryInfo;
19768   };
19769   using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
19770 
19771   struct Offset2D
19772   {
19773 
19774 
19775 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset2DVULKAN_HPP_NAMESPACE::Offset2D19776     VULKAN_HPP_CONSTEXPR Offset2D(int32_t x_ = {}, int32_t y_ = {}) VULKAN_HPP_NOEXCEPT
19777     : x( x_ ), y( y_ )
19778     {}
19779 
19780     VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19781 
Offset2DVULKAN_HPP_NAMESPACE::Offset2D19782     Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
19783     {
19784       *this = rhs;
19785     }
19786 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19787 
operator =VULKAN_HPP_NAMESPACE::Offset2D19788     Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
19789     {
19790       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset2D const *>( &rhs );
19791       return *this;
19792     }
19793 
operator =VULKAN_HPP_NAMESPACE::Offset2D19794     Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT
19795     {
19796       memcpy( static_cast<void *>( this ), &rhs, sizeof( Offset2D ) );
19797       return *this;
19798     }
19799 
setXVULKAN_HPP_NAMESPACE::Offset2D19800     Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
19801     {
19802       x = x_;
19803       return *this;
19804     }
19805 
setYVULKAN_HPP_NAMESPACE::Offset2D19806     Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
19807     {
19808       y = y_;
19809       return *this;
19810     }
19811 
19812 
operator VkOffset2D const&VULKAN_HPP_NAMESPACE::Offset2D19813     operator VkOffset2D const&() const VULKAN_HPP_NOEXCEPT
19814     {
19815       return *reinterpret_cast<const VkOffset2D*>( this );
19816     }
19817 
operator VkOffset2D&VULKAN_HPP_NAMESPACE::Offset2D19818     operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
19819     {
19820       return *reinterpret_cast<VkOffset2D*>( this );
19821     }
19822 
19823 
19824 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19825     auto operator<=>( Offset2D const& ) const = default;
19826 #else
operator ==VULKAN_HPP_NAMESPACE::Offset2D19827     bool operator==( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19828     {
19829       return ( x == rhs.x )
19830           && ( y == rhs.y );
19831     }
19832 
operator !=VULKAN_HPP_NAMESPACE::Offset2D19833     bool operator!=( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19834     {
19835       return !operator==( rhs );
19836     }
19837 #endif
19838 
19839 
19840 
19841   public:
19842     int32_t x = {};
19843     int32_t y = {};
19844 
19845   };
19846   static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" );
19847   static_assert( std::is_standard_layout<Offset2D>::value, "struct wrapper is not a standard layout!" );
19848 
19849   struct Rect2D
19850   {
19851 
19852 
19853 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Rect2DVULKAN_HPP_NAMESPACE::Rect2D19854     VULKAN_HPP_CONSTEXPR Rect2D(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}) VULKAN_HPP_NOEXCEPT
19855     : offset( offset_ ), extent( extent_ )
19856     {}
19857 
19858     VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19859 
Rect2DVULKAN_HPP_NAMESPACE::Rect2D19860     Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
19861     {
19862       *this = rhs;
19863     }
19864 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19865 
operator =VULKAN_HPP_NAMESPACE::Rect2D19866     Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
19867     {
19868       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Rect2D const *>( &rhs );
19869       return *this;
19870     }
19871 
operator =VULKAN_HPP_NAMESPACE::Rect2D19872     Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT
19873     {
19874       memcpy( static_cast<void *>( this ), &rhs, sizeof( Rect2D ) );
19875       return *this;
19876     }
19877 
setOffsetVULKAN_HPP_NAMESPACE::Rect2D19878     Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
19879     {
19880       offset = offset_;
19881       return *this;
19882     }
19883 
setExtentVULKAN_HPP_NAMESPACE::Rect2D19884     Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
19885     {
19886       extent = extent_;
19887       return *this;
19888     }
19889 
19890 
operator VkRect2D const&VULKAN_HPP_NAMESPACE::Rect2D19891     operator VkRect2D const&() const VULKAN_HPP_NOEXCEPT
19892     {
19893       return *reinterpret_cast<const VkRect2D*>( this );
19894     }
19895 
operator VkRect2D&VULKAN_HPP_NAMESPACE::Rect2D19896     operator VkRect2D &() VULKAN_HPP_NOEXCEPT
19897     {
19898       return *reinterpret_cast<VkRect2D*>( this );
19899     }
19900 
19901 
19902 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
19903     auto operator<=>( Rect2D const& ) const = default;
19904 #else
operator ==VULKAN_HPP_NAMESPACE::Rect2D19905     bool operator==( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19906     {
19907       return ( offset == rhs.offset )
19908           && ( extent == rhs.extent );
19909     }
19910 
operator !=VULKAN_HPP_NAMESPACE::Rect2D19911     bool operator!=( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT
19912     {
19913       return !operator==( rhs );
19914     }
19915 #endif
19916 
19917 
19918 
19919   public:
19920     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
19921     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
19922 
19923   };
19924   static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" );
19925   static_assert( std::is_standard_layout<Rect2D>::value, "struct wrapper is not a standard layout!" );
19926 
19927   struct BindImageMemoryDeviceGroupInfo
19928   {
19929     static const bool allowDuplicate = false;
19930     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo;
19931 
19932 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19933     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}, uint32_t splitInstanceBindRegionCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ = {}) VULKAN_HPP_NOEXCEPT
19934     : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ), splitInstanceBindRegionCount( splitInstanceBindRegionCount_ ), pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
19935     {}
19936 
19937     VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
19938 
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19939     BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19940     {
19941       *this = rhs;
19942     }
19943 
19944 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19945     BindImageMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ = {} )
19946     : deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ), splitInstanceBindRegionCount( static_cast<uint32_t>( splitInstanceBindRegions_.size() ) ), pSplitInstanceBindRegions( splitInstanceBindRegions_.data() )
19947     {}
19948 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19949 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
19950 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19951     BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19952     {
19953       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const *>( &rhs );
19954       return *this;
19955     }
19956 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19957     BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
19958     {
19959       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImageMemoryDeviceGroupInfo ) );
19960       return *this;
19961     }
19962 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19963     BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
19964     {
19965       pNext = pNext_;
19966       return *this;
19967     }
19968 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19969     BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
19970     {
19971       deviceIndexCount = deviceIndexCount_;
19972       return *this;
19973     }
19974 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19975     BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
19976     {
19977       pDeviceIndices = pDeviceIndices_;
19978       return *this;
19979     }
19980 
19981 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19982     BindImageMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
19983     {
19984       deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
19985       pDeviceIndices = deviceIndices_.data();
19986       return *this;
19987     }
19988 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
19989 
setSplitInstanceBindRegionCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19990     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT
19991     {
19992       splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
19993       return *this;
19994     }
19995 
setPSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo19996     BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
19997     {
19998       pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
19999       return *this;
20000     }
20001 
20002 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20003     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
20004     {
20005       splitInstanceBindRegionCount = static_cast<uint32_t>( splitInstanceBindRegions_.size() );
20006       pSplitInstanceBindRegions = splitInstanceBindRegions_.data();
20007       return *this;
20008     }
20009 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20010 
20011 
operator VkBindImageMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20012     operator VkBindImageMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT
20013     {
20014       return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>( this );
20015     }
20016 
operator VkBindImageMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20017     operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
20018     {
20019       return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>( this );
20020     }
20021 
20022 
20023 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20024     auto operator<=>( BindImageMemoryDeviceGroupInfo const& ) const = default;
20025 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20026     bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20027     {
20028       return ( sType == rhs.sType )
20029           && ( pNext == rhs.pNext )
20030           && ( deviceIndexCount == rhs.deviceIndexCount )
20031           && ( pDeviceIndices == rhs.pDeviceIndices )
20032           && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount )
20033           && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
20034     }
20035 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20036     bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20037     {
20038       return !operator==( rhs );
20039     }
20040 #endif
20041 
20042 
20043 
20044   public:
20045     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
20046     const void* pNext = {};
20047     uint32_t deviceIndexCount = {};
20048     const uint32_t* pDeviceIndices = {};
20049     uint32_t splitInstanceBindRegionCount = {};
20050     const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions = {};
20051 
20052   };
20053   static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
20054   static_assert( std::is_standard_layout<BindImageMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
20055 
20056   template <>
20057   struct CppType<StructureType, StructureType::eBindImageMemoryDeviceGroupInfo>
20058   {
20059     using Type = BindImageMemoryDeviceGroupInfo;
20060   };
20061   using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
20062 
20063   class Image
20064   {
20065   public:
20066     using CType = VkImage;
20067 
20068     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage;
20069     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
20070 
20071   public:
Image()20072     VULKAN_HPP_CONSTEXPR Image() VULKAN_HPP_NOEXCEPT
20073       : m_image(VK_NULL_HANDLE)
20074     {}
20075 
Image(std::nullptr_t)20076     VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20077       : m_image(VK_NULL_HANDLE)
20078     {}
20079 
Image(VkImage image)20080     VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT
20081       : m_image( image )
20082     {}
20083 
20084 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImage image)20085     Image & operator=(VkImage image) VULKAN_HPP_NOEXCEPT
20086     {
20087       m_image = image;
20088       return *this;
20089     }
20090 #endif
20091 
operator =(std::nullptr_t)20092     Image & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
20093     {
20094       m_image = VK_NULL_HANDLE;
20095       return *this;
20096     }
20097 
20098 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20099     auto operator<=>( Image const& ) const = default;
20100 #else
operator ==(Image const & rhs) const20101     bool operator==( Image const & rhs ) const VULKAN_HPP_NOEXCEPT
20102     {
20103       return m_image == rhs.m_image;
20104     }
20105 
operator !=(Image const & rhs) const20106     bool operator!=(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
20107     {
20108       return m_image != rhs.m_image;
20109     }
20110 
operator <(Image const & rhs) const20111     bool operator<(Image const & rhs ) const VULKAN_HPP_NOEXCEPT
20112     {
20113       return m_image < rhs.m_image;
20114     }
20115 #endif
20116 
operator VkImage() const20117     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const VULKAN_HPP_NOEXCEPT
20118     {
20119       return m_image;
20120     }
20121 
operator bool() const20122     explicit operator bool() const VULKAN_HPP_NOEXCEPT
20123     {
20124       return m_image != VK_NULL_HANDLE;
20125     }
20126 
operator !() const20127     bool operator!() const VULKAN_HPP_NOEXCEPT
20128     {
20129       return m_image == VK_NULL_HANDLE;
20130     }
20131 
20132   private:
20133     VkImage m_image;
20134   };
20135   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Image ) == sizeof( VkImage ), "handle and wrapper have different size!" );
20136 
20137   template <>
20138   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImage>
20139   {
20140     using type = VULKAN_HPP_NAMESPACE::Image;
20141   };
20142 
20143   template <>
20144   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImage>
20145   {
20146     using Type = VULKAN_HPP_NAMESPACE::Image;
20147   };
20148 
20149 
20150   template <>
20151   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage>
20152   {
20153     using Type = VULKAN_HPP_NAMESPACE::Image;
20154   };
20155 
20156 
20157   template <>
20158   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Image>
20159   {
20160     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
20161   };
20162 
20163   struct BindImageMemoryInfo
20164   {
20165     static const bool allowDuplicate = false;
20166     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo;
20167 
20168 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20169     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT
20170     : image( image_ ), memory( memory_ ), memoryOffset( memoryOffset_ )
20171     {}
20172 
20173     VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20174 
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20175     BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20176     {
20177       *this = rhs;
20178     }
20179 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20180 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20181     BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20182     {
20183       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const *>( &rhs );
20184       return *this;
20185     }
20186 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20187     BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20188     {
20189       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImageMemoryInfo ) );
20190       return *this;
20191     }
20192 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20193     BindImageMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20194     {
20195       pNext = pNext_;
20196       return *this;
20197     }
20198 
setImageVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20199     BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
20200     {
20201       image = image_;
20202       return *this;
20203     }
20204 
setMemoryVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20205     BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
20206     {
20207       memory = memory_;
20208       return *this;
20209     }
20210 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20211     BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
20212     {
20213       memoryOffset = memoryOffset_;
20214       return *this;
20215     }
20216 
20217 
operator VkBindImageMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20218     operator VkBindImageMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
20219     {
20220       return *reinterpret_cast<const VkBindImageMemoryInfo*>( this );
20221     }
20222 
operator VkBindImageMemoryInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20223     operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
20224     {
20225       return *reinterpret_cast<VkBindImageMemoryInfo*>( this );
20226     }
20227 
20228 
20229 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20230     auto operator<=>( BindImageMemoryInfo const& ) const = default;
20231 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20232     bool operator==( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20233     {
20234       return ( sType == rhs.sType )
20235           && ( pNext == rhs.pNext )
20236           && ( image == rhs.image )
20237           && ( memory == rhs.memory )
20238           && ( memoryOffset == rhs.memoryOffset );
20239     }
20240 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20241     bool operator!=( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20242     {
20243       return !operator==( rhs );
20244     }
20245 #endif
20246 
20247 
20248 
20249   public:
20250     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo;
20251     const void* pNext = {};
20252     VULKAN_HPP_NAMESPACE::Image image = {};
20253     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
20254     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
20255 
20256   };
20257   static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" );
20258   static_assert( std::is_standard_layout<BindImageMemoryInfo>::value, "struct wrapper is not a standard layout!" );
20259 
20260   template <>
20261   struct CppType<StructureType, StructureType::eBindImageMemoryInfo>
20262   {
20263     using Type = BindImageMemoryInfo;
20264   };
20265   using BindImageMemoryInfoKHR = BindImageMemoryInfo;
20266 
20267   struct BindImageMemorySwapchainInfoKHR
20268   {
20269     static const bool allowDuplicate = false;
20270     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR;
20271 
20272 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20273     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint32_t imageIndex_ = {}) VULKAN_HPP_NOEXCEPT
20274     : swapchain( swapchain_ ), imageIndex( imageIndex_ )
20275     {}
20276 
20277     VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20278 
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20279     BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
20280     {
20281       *this = rhs;
20282     }
20283 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20284 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20285     BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
20286     {
20287       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const *>( &rhs );
20288       return *this;
20289     }
20290 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20291     BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
20292     {
20293       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImageMemorySwapchainInfoKHR ) );
20294       return *this;
20295     }
20296 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20297     BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20298     {
20299       pNext = pNext_;
20300       return *this;
20301     }
20302 
setSwapchainVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20303     BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
20304     {
20305       swapchain = swapchain_;
20306       return *this;
20307     }
20308 
setImageIndexVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20309     BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT
20310     {
20311       imageIndex = imageIndex_;
20312       return *this;
20313     }
20314 
20315 
operator VkBindImageMemorySwapchainInfoKHR const&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20316     operator VkBindImageMemorySwapchainInfoKHR const&() const VULKAN_HPP_NOEXCEPT
20317     {
20318       return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>( this );
20319     }
20320 
operator VkBindImageMemorySwapchainInfoKHR&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20321     operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
20322     {
20323       return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>( this );
20324     }
20325 
20326 
20327 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20328     auto operator<=>( BindImageMemorySwapchainInfoKHR const& ) const = default;
20329 #else
operator ==VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20330     bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
20331     {
20332       return ( sType == rhs.sType )
20333           && ( pNext == rhs.pNext )
20334           && ( swapchain == rhs.swapchain )
20335           && ( imageIndex == rhs.imageIndex );
20336     }
20337 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20338     bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
20339     {
20340       return !operator==( rhs );
20341     }
20342 #endif
20343 
20344 
20345 
20346   public:
20347     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
20348     const void* pNext = {};
20349     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
20350     uint32_t imageIndex = {};
20351 
20352   };
20353   static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" );
20354   static_assert( std::is_standard_layout<BindImageMemorySwapchainInfoKHR>::value, "struct wrapper is not a standard layout!" );
20355 
20356   template <>
20357   struct CppType<StructureType, StructureType::eBindImageMemorySwapchainInfoKHR>
20358   {
20359     using Type = BindImageMemorySwapchainInfoKHR;
20360   };
20361 
20362   struct BindImagePlaneMemoryInfo
20363   {
20364     static const bool allowDuplicate = false;
20365     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo;
20366 
20367 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20368     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT
20369     : planeAspect( planeAspect_ )
20370     {}
20371 
20372     VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20373 
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20374     BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20375     {
20376       *this = rhs;
20377     }
20378 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20379 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20380     BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20381     {
20382       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const *>( &rhs );
20383       return *this;
20384     }
20385 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20386     BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20387     {
20388       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindImagePlaneMemoryInfo ) );
20389       return *this;
20390     }
20391 
setPNextVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20392     BindImagePlaneMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
20393     {
20394       pNext = pNext_;
20395       return *this;
20396     }
20397 
setPlaneAspectVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20398     BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
20399     {
20400       planeAspect = planeAspect_;
20401       return *this;
20402     }
20403 
20404 
operator VkBindImagePlaneMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20405     operator VkBindImagePlaneMemoryInfo const&() const VULKAN_HPP_NOEXCEPT
20406     {
20407       return *reinterpret_cast<const VkBindImagePlaneMemoryInfo*>( this );
20408     }
20409 
operator VkBindImagePlaneMemoryInfo&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20410     operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
20411     {
20412       return *reinterpret_cast<VkBindImagePlaneMemoryInfo*>( this );
20413     }
20414 
20415 
20416 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20417     auto operator<=>( BindImagePlaneMemoryInfo const& ) const = default;
20418 #else
operator ==VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20419     bool operator==( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20420     {
20421       return ( sType == rhs.sType )
20422           && ( pNext == rhs.pNext )
20423           && ( planeAspect == rhs.planeAspect );
20424     }
20425 
operator !=VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20426     bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20427     {
20428       return !operator==( rhs );
20429     }
20430 #endif
20431 
20432 
20433 
20434   public:
20435     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
20436     const void* pNext = {};
20437     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
20438 
20439   };
20440   static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" );
20441   static_assert( std::is_standard_layout<BindImagePlaneMemoryInfo>::value, "struct wrapper is not a standard layout!" );
20442 
20443   template <>
20444   struct CppType<StructureType, StructureType::eBindImagePlaneMemoryInfo>
20445   {
20446     using Type = BindImagePlaneMemoryInfo;
20447   };
20448   using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
20449 
20450   struct BindIndexBufferIndirectCommandNV
20451   {
20452 
20453 
20454 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20455     VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16) VULKAN_HPP_NOEXCEPT
20456     : bufferAddress( bufferAddress_ ), size( size_ ), indexType( indexType_ )
20457     {}
20458 
20459     VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20460 
BindIndexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20461     BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20462     {
20463       *this = rhs;
20464     }
20465 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20466 
operator =VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20467     BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20468     {
20469       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const *>( &rhs );
20470       return *this;
20471     }
20472 
operator =VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20473     BindIndexBufferIndirectCommandNV & operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20474     {
20475       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindIndexBufferIndirectCommandNV ) );
20476       return *this;
20477     }
20478 
setBufferAddressVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20479     BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
20480     {
20481       bufferAddress = bufferAddress_;
20482       return *this;
20483     }
20484 
setSizeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20485     BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
20486     {
20487       size = size_;
20488       return *this;
20489     }
20490 
setIndexTypeVULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20491     BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
20492     {
20493       indexType = indexType_;
20494       return *this;
20495     }
20496 
20497 
operator VkBindIndexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20498     operator VkBindIndexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
20499     {
20500       return *reinterpret_cast<const VkBindIndexBufferIndirectCommandNV*>( this );
20501     }
20502 
operator VkBindIndexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20503     operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
20504     {
20505       return *reinterpret_cast<VkBindIndexBufferIndirectCommandNV*>( this );
20506     }
20507 
20508 
20509 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20510     auto operator<=>( BindIndexBufferIndirectCommandNV const& ) const = default;
20511 #else
operator ==VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20512     bool operator==( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20513     {
20514       return ( bufferAddress == rhs.bufferAddress )
20515           && ( size == rhs.size )
20516           && ( indexType == rhs.indexType );
20517     }
20518 
operator !=VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV20519     bool operator!=( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20520     {
20521       return !operator==( rhs );
20522     }
20523 #endif
20524 
20525 
20526 
20527   public:
20528     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
20529     uint32_t size = {};
20530     VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
20531 
20532   };
20533   static_assert( sizeof( BindIndexBufferIndirectCommandNV ) == sizeof( VkBindIndexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
20534   static_assert( std::is_standard_layout<BindIndexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
20535 
20536   struct BindShaderGroupIndirectCommandNV
20537   {
20538 
20539 
20540 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20541     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV(uint32_t groupIndex_ = {}) VULKAN_HPP_NOEXCEPT
20542     : groupIndex( groupIndex_ )
20543     {}
20544 
20545     VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20546 
BindShaderGroupIndirectCommandNVVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20547     BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20548     {
20549       *this = rhs;
20550     }
20551 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20552 
operator =VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20553     BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20554     {
20555       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const *>( &rhs );
20556       return *this;
20557     }
20558 
operator =VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20559     BindShaderGroupIndirectCommandNV & operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
20560     {
20561       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindShaderGroupIndirectCommandNV ) );
20562       return *this;
20563     }
20564 
setGroupIndexVULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20565     BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT
20566     {
20567       groupIndex = groupIndex_;
20568       return *this;
20569     }
20570 
20571 
operator VkBindShaderGroupIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20572     operator VkBindShaderGroupIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
20573     {
20574       return *reinterpret_cast<const VkBindShaderGroupIndirectCommandNV*>( this );
20575     }
20576 
operator VkBindShaderGroupIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20577     operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
20578     {
20579       return *reinterpret_cast<VkBindShaderGroupIndirectCommandNV*>( this );
20580     }
20581 
20582 
20583 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20584     auto operator<=>( BindShaderGroupIndirectCommandNV const& ) const = default;
20585 #else
operator ==VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20586     bool operator==( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20587     {
20588       return ( groupIndex == rhs.groupIndex );
20589     }
20590 
operator !=VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV20591     bool operator!=( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
20592     {
20593       return !operator==( rhs );
20594     }
20595 #endif
20596 
20597 
20598 
20599   public:
20600     uint32_t groupIndex = {};
20601 
20602   };
20603   static_assert( sizeof( BindShaderGroupIndirectCommandNV ) == sizeof( VkBindShaderGroupIndirectCommandNV ), "struct and wrapper have different size!" );
20604   static_assert( std::is_standard_layout<BindShaderGroupIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
20605 
20606   struct SparseMemoryBind
20607   {
20608 
20609 
20610 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind20611     VULKAN_HPP_CONSTEXPR SparseMemoryBind(VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
20612     : resourceOffset( resourceOffset_ ), size( size_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
20613     {}
20614 
20615     VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20616 
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind20617     SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
20618     {
20619       *this = rhs;
20620     }
20621 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20622 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind20623     SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
20624     {
20625       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseMemoryBind const *>( &rhs );
20626       return *this;
20627     }
20628 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind20629     SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
20630     {
20631       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseMemoryBind ) );
20632       return *this;
20633     }
20634 
setResourceOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind20635     SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT
20636     {
20637       resourceOffset = resourceOffset_;
20638       return *this;
20639     }
20640 
setSizeVULKAN_HPP_NAMESPACE::SparseMemoryBind20641     SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
20642     {
20643       size = size_;
20644       return *this;
20645     }
20646 
setMemoryVULKAN_HPP_NAMESPACE::SparseMemoryBind20647     SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
20648     {
20649       memory = memory_;
20650       return *this;
20651     }
20652 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind20653     SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
20654     {
20655       memoryOffset = memoryOffset_;
20656       return *this;
20657     }
20658 
setFlagsVULKAN_HPP_NAMESPACE::SparseMemoryBind20659     SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
20660     {
20661       flags = flags_;
20662       return *this;
20663     }
20664 
20665 
operator VkSparseMemoryBind const&VULKAN_HPP_NAMESPACE::SparseMemoryBind20666     operator VkSparseMemoryBind const&() const VULKAN_HPP_NOEXCEPT
20667     {
20668       return *reinterpret_cast<const VkSparseMemoryBind*>( this );
20669     }
20670 
operator VkSparseMemoryBind&VULKAN_HPP_NAMESPACE::SparseMemoryBind20671     operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
20672     {
20673       return *reinterpret_cast<VkSparseMemoryBind*>( this );
20674     }
20675 
20676 
20677 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20678     auto operator<=>( SparseMemoryBind const& ) const = default;
20679 #else
operator ==VULKAN_HPP_NAMESPACE::SparseMemoryBind20680     bool operator==( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
20681     {
20682       return ( resourceOffset == rhs.resourceOffset )
20683           && ( size == rhs.size )
20684           && ( memory == rhs.memory )
20685           && ( memoryOffset == rhs.memoryOffset )
20686           && ( flags == rhs.flags );
20687     }
20688 
operator !=VULKAN_HPP_NAMESPACE::SparseMemoryBind20689     bool operator!=( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
20690     {
20691       return !operator==( rhs );
20692     }
20693 #endif
20694 
20695 
20696 
20697   public:
20698     VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {};
20699     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
20700     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
20701     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
20702     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
20703 
20704   };
20705   static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" );
20706   static_assert( std::is_standard_layout<SparseMemoryBind>::value, "struct wrapper is not a standard layout!" );
20707 
20708   struct SparseBufferMemoryBindInfo
20709   {
20710 
20711 
20712 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20713     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
20714     : buffer( buffer_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
20715     {}
20716 
20717     VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20718 
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20719     SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20720     {
20721       *this = rhs;
20722     }
20723 
20724 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20725     SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
20726     : buffer( buffer_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
20727     {}
20728 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20729 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20730 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20731     SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20732     {
20733       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const *>( &rhs );
20734       return *this;
20735     }
20736 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20737     SparseBufferMemoryBindInfo & operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20738     {
20739       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseBufferMemoryBindInfo ) );
20740       return *this;
20741     }
20742 
setBufferVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20743     SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
20744     {
20745       buffer = buffer_;
20746       return *this;
20747     }
20748 
setBindCountVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20749     SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
20750     {
20751       bindCount = bindCount_;
20752       return *this;
20753     }
20754 
setPBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20755     SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
20756     {
20757       pBinds = pBinds_;
20758       return *this;
20759     }
20760 
20761 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20762     SparseBufferMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
20763     {
20764       bindCount = static_cast<uint32_t>( binds_.size() );
20765       pBinds = binds_.data();
20766       return *this;
20767     }
20768 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20769 
20770 
operator VkSparseBufferMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20771     operator VkSparseBufferMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
20772     {
20773       return *reinterpret_cast<const VkSparseBufferMemoryBindInfo*>( this );
20774     }
20775 
operator VkSparseBufferMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20776     operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
20777     {
20778       return *reinterpret_cast<VkSparseBufferMemoryBindInfo*>( this );
20779     }
20780 
20781 
20782 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20783     auto operator<=>( SparseBufferMemoryBindInfo const& ) const = default;
20784 #else
operator ==VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20785     bool operator==( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20786     {
20787       return ( buffer == rhs.buffer )
20788           && ( bindCount == rhs.bindCount )
20789           && ( pBinds == rhs.pBinds );
20790     }
20791 
operator !=VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo20792     bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20793     {
20794       return !operator==( rhs );
20795     }
20796 #endif
20797 
20798 
20799 
20800   public:
20801     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
20802     uint32_t bindCount = {};
20803     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
20804 
20805   };
20806   static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" );
20807   static_assert( std::is_standard_layout<SparseBufferMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
20808 
20809   struct SparseImageOpaqueMemoryBindInfo
20810   {
20811 
20812 
20813 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20814     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
20815     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
20816     {}
20817 
20818     VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20819 
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20820     SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20821     {
20822       *this = rhs;
20823     }
20824 
20825 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20826     SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
20827     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
20828     {}
20829 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20830 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20831 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20832     SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20833     {
20834       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const *>( &rhs );
20835       return *this;
20836     }
20837 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20838     SparseImageOpaqueMemoryBindInfo & operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
20839     {
20840       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageOpaqueMemoryBindInfo ) );
20841       return *this;
20842     }
20843 
setImageVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20844     SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
20845     {
20846       image = image_;
20847       return *this;
20848     }
20849 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20850     SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
20851     {
20852       bindCount = bindCount_;
20853       return *this;
20854     }
20855 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20856     SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
20857     {
20858       pBinds = pBinds_;
20859       return *this;
20860     }
20861 
20862 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20863     SparseImageOpaqueMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
20864     {
20865       bindCount = static_cast<uint32_t>( binds_.size() );
20866       pBinds = binds_.data();
20867       return *this;
20868     }
20869 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
20870 
20871 
operator VkSparseImageOpaqueMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20872     operator VkSparseImageOpaqueMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
20873     {
20874       return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo*>( this );
20875     }
20876 
operator VkSparseImageOpaqueMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20877     operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
20878     {
20879       return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>( this );
20880     }
20881 
20882 
20883 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20884     auto operator<=>( SparseImageOpaqueMemoryBindInfo const& ) const = default;
20885 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20886     bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20887     {
20888       return ( image == rhs.image )
20889           && ( bindCount == rhs.bindCount )
20890           && ( pBinds == rhs.pBinds );
20891     }
20892 
operator !=VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo20893     bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
20894     {
20895       return !operator==( rhs );
20896     }
20897 #endif
20898 
20899 
20900 
20901   public:
20902     VULKAN_HPP_NAMESPACE::Image image = {};
20903     uint32_t bindCount = {};
20904     const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {};
20905 
20906   };
20907   static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" );
20908   static_assert( std::is_standard_layout<SparseImageOpaqueMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
20909 
20910   struct ImageSubresource
20911   {
20912 
20913 
20914 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource20915     VULKAN_HPP_CONSTEXPR ImageSubresource(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {}) VULKAN_HPP_NOEXCEPT
20916     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), arrayLayer( arrayLayer_ )
20917     {}
20918 
20919     VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
20920 
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource20921     ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
20922     {
20923       *this = rhs;
20924     }
20925 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
20926 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource20927     ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
20928     {
20929       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource const *>( &rhs );
20930       return *this;
20931     }
20932 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource20933     ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
20934     {
20935       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSubresource ) );
20936       return *this;
20937     }
20938 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresource20939     ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
20940     {
20941       aspectMask = aspectMask_;
20942       return *this;
20943     }
20944 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresource20945     ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
20946     {
20947       mipLevel = mipLevel_;
20948       return *this;
20949     }
20950 
setArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresource20951     ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT
20952     {
20953       arrayLayer = arrayLayer_;
20954       return *this;
20955     }
20956 
20957 
operator VkImageSubresource const&VULKAN_HPP_NAMESPACE::ImageSubresource20958     operator VkImageSubresource const&() const VULKAN_HPP_NOEXCEPT
20959     {
20960       return *reinterpret_cast<const VkImageSubresource*>( this );
20961     }
20962 
operator VkImageSubresource&VULKAN_HPP_NAMESPACE::ImageSubresource20963     operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
20964     {
20965       return *reinterpret_cast<VkImageSubresource*>( this );
20966     }
20967 
20968 
20969 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
20970     auto operator<=>( ImageSubresource const& ) const = default;
20971 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresource20972     bool operator==( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
20973     {
20974       return ( aspectMask == rhs.aspectMask )
20975           && ( mipLevel == rhs.mipLevel )
20976           && ( arrayLayer == rhs.arrayLayer );
20977     }
20978 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresource20979     bool operator!=( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT
20980     {
20981       return !operator==( rhs );
20982     }
20983 #endif
20984 
20985 
20986 
20987   public:
20988     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
20989     uint32_t mipLevel = {};
20990     uint32_t arrayLayer = {};
20991 
20992   };
20993   static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" );
20994   static_assert( std::is_standard_layout<ImageSubresource>::value, "struct wrapper is not a standard layout!" );
20995 
20996   struct Offset3D
20997   {
20998 
20999 
21000 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Offset3DVULKAN_HPP_NAMESPACE::Offset3D21001     VULKAN_HPP_CONSTEXPR Offset3D(int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {}) VULKAN_HPP_NOEXCEPT
21002     : x( x_ ), y( y_ ), z( z_ )
21003     {}
21004 
21005     VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21006 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D21007     Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
21008     {
21009       *this = rhs;
21010     }
21011 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D21012     explicit Offset3D( Offset2D const& offset2D, int32_t z_ = {} )
21013       : x( offset2D.x )
21014       , y( offset2D.y )
21015       , z( z_ )
21016     {}
21017 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21018 
operator =VULKAN_HPP_NAMESPACE::Offset3D21019     Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
21020     {
21021       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset3D const *>( &rhs );
21022       return *this;
21023     }
21024 
operator =VULKAN_HPP_NAMESPACE::Offset3D21025     Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT
21026     {
21027       memcpy( static_cast<void *>( this ), &rhs, sizeof( Offset3D ) );
21028       return *this;
21029     }
21030 
setXVULKAN_HPP_NAMESPACE::Offset3D21031     Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
21032     {
21033       x = x_;
21034       return *this;
21035     }
21036 
setYVULKAN_HPP_NAMESPACE::Offset3D21037     Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
21038     {
21039       y = y_;
21040       return *this;
21041     }
21042 
setZVULKAN_HPP_NAMESPACE::Offset3D21043     Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT
21044     {
21045       z = z_;
21046       return *this;
21047     }
21048 
21049 
operator VkOffset3D const&VULKAN_HPP_NAMESPACE::Offset3D21050     operator VkOffset3D const&() const VULKAN_HPP_NOEXCEPT
21051     {
21052       return *reinterpret_cast<const VkOffset3D*>( this );
21053     }
21054 
operator VkOffset3D&VULKAN_HPP_NAMESPACE::Offset3D21055     operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
21056     {
21057       return *reinterpret_cast<VkOffset3D*>( this );
21058     }
21059 
21060 
21061 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21062     auto operator<=>( Offset3D const& ) const = default;
21063 #else
operator ==VULKAN_HPP_NAMESPACE::Offset3D21064     bool operator==( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21065     {
21066       return ( x == rhs.x )
21067           && ( y == rhs.y )
21068           && ( z == rhs.z );
21069     }
21070 
operator !=VULKAN_HPP_NAMESPACE::Offset3D21071     bool operator!=( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21072     {
21073       return !operator==( rhs );
21074     }
21075 #endif
21076 
21077 
21078 
21079   public:
21080     int32_t x = {};
21081     int32_t y = {};
21082     int32_t z = {};
21083 
21084   };
21085   static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" );
21086   static_assert( std::is_standard_layout<Offset3D>::value, "struct wrapper is not a standard layout!" );
21087 
21088   struct Extent3D
21089   {
21090 
21091 
21092 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Extent3DVULKAN_HPP_NAMESPACE::Extent3D21093     VULKAN_HPP_CONSTEXPR Extent3D(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
21094     : width( width_ ), height( height_ ), depth( depth_ )
21095     {}
21096 
21097     VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21098 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D21099     Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
21100     {
21101       *this = rhs;
21102     }
21103 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D21104     explicit Extent3D( Extent2D const& extent2D, uint32_t depth_ = {} )
21105       : width( extent2D.width )
21106       , height( extent2D.height )
21107       , depth( depth_ )
21108     {}
21109 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21110 
operator =VULKAN_HPP_NAMESPACE::Extent3D21111     Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
21112     {
21113       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent3D const *>( &rhs );
21114       return *this;
21115     }
21116 
operator =VULKAN_HPP_NAMESPACE::Extent3D21117     Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT
21118     {
21119       memcpy( static_cast<void *>( this ), &rhs, sizeof( Extent3D ) );
21120       return *this;
21121     }
21122 
setWidthVULKAN_HPP_NAMESPACE::Extent3D21123     Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
21124     {
21125       width = width_;
21126       return *this;
21127     }
21128 
setHeightVULKAN_HPP_NAMESPACE::Extent3D21129     Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
21130     {
21131       height = height_;
21132       return *this;
21133     }
21134 
setDepthVULKAN_HPP_NAMESPACE::Extent3D21135     Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
21136     {
21137       depth = depth_;
21138       return *this;
21139     }
21140 
21141 
operator VkExtent3D const&VULKAN_HPP_NAMESPACE::Extent3D21142     operator VkExtent3D const&() const VULKAN_HPP_NOEXCEPT
21143     {
21144       return *reinterpret_cast<const VkExtent3D*>( this );
21145     }
21146 
operator VkExtent3D&VULKAN_HPP_NAMESPACE::Extent3D21147     operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
21148     {
21149       return *reinterpret_cast<VkExtent3D*>( this );
21150     }
21151 
21152 
21153 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21154     auto operator<=>( Extent3D const& ) const = default;
21155 #else
operator ==VULKAN_HPP_NAMESPACE::Extent3D21156     bool operator==( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21157     {
21158       return ( width == rhs.width )
21159           && ( height == rhs.height )
21160           && ( depth == rhs.depth );
21161     }
21162 
operator !=VULKAN_HPP_NAMESPACE::Extent3D21163     bool operator!=( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT
21164     {
21165       return !operator==( rhs );
21166     }
21167 #endif
21168 
21169 
21170 
21171   public:
21172     uint32_t width = {};
21173     uint32_t height = {};
21174     uint32_t depth = {};
21175 
21176   };
21177   static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" );
21178   static_assert( std::is_standard_layout<Extent3D>::value, "struct wrapper is not a standard layout!" );
21179 
21180   struct SparseImageMemoryBind
21181   {
21182 
21183 
21184 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21185     VULKAN_HPP_CONSTEXPR SparseImageMemoryBind(VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
21186     : subresource( subresource_ ), offset( offset_ ), extent( extent_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ )
21187     {}
21188 
21189     VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21190 
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21191     SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21192     {
21193       *this = rhs;
21194     }
21195 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21196 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21197     SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21198     {
21199       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const *>( &rhs );
21200       return *this;
21201     }
21202 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21203     SparseImageMemoryBind & operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
21204     {
21205       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryBind ) );
21206       return *this;
21207     }
21208 
setSubresourceVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21209     SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT
21210     {
21211       subresource = subresource_;
21212       return *this;
21213     }
21214 
setOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21215     SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT
21216     {
21217       offset = offset_;
21218       return *this;
21219     }
21220 
setExtentVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21221     SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
21222     {
21223       extent = extent_;
21224       return *this;
21225     }
21226 
setMemoryVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21227     SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
21228     {
21229       memory = memory_;
21230       return *this;
21231     }
21232 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21233     SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
21234     {
21235       memoryOffset = memoryOffset_;
21236       return *this;
21237     }
21238 
setFlagsVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21239     SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
21240     {
21241       flags = flags_;
21242       return *this;
21243     }
21244 
21245 
operator VkSparseImageMemoryBind const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21246     operator VkSparseImageMemoryBind const&() const VULKAN_HPP_NOEXCEPT
21247     {
21248       return *reinterpret_cast<const VkSparseImageMemoryBind*>( this );
21249     }
21250 
operator VkSparseImageMemoryBind&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21251     operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
21252     {
21253       return *reinterpret_cast<VkSparseImageMemoryBind*>( this );
21254     }
21255 
21256 
21257 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21258     auto operator<=>( SparseImageMemoryBind const& ) const = default;
21259 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21260     bool operator==( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
21261     {
21262       return ( subresource == rhs.subresource )
21263           && ( offset == rhs.offset )
21264           && ( extent == rhs.extent )
21265           && ( memory == rhs.memory )
21266           && ( memoryOffset == rhs.memoryOffset )
21267           && ( flags == rhs.flags );
21268     }
21269 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21270     bool operator!=( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT
21271     {
21272       return !operator==( rhs );
21273     }
21274 #endif
21275 
21276 
21277 
21278   public:
21279     VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {};
21280     VULKAN_HPP_NAMESPACE::Offset3D offset = {};
21281     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
21282     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
21283     VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
21284     VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
21285 
21286   };
21287   static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" );
21288   static_assert( std::is_standard_layout<SparseImageMemoryBind>::value, "struct wrapper is not a standard layout!" );
21289 
21290   struct SparseImageMemoryBindInfo
21291   {
21292 
21293 
21294 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21295     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT
21296     : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ )
21297     {}
21298 
21299     VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21300 
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21301     SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21302     {
21303       *this = rhs;
21304     }
21305 
21306 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21307     SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ )
21308     : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
21309     {}
21310 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21311 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21312 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21313     SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21314     {
21315       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const *>( &rhs );
21316       return *this;
21317     }
21318 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21319     SparseImageMemoryBindInfo & operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21320     {
21321       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryBindInfo ) );
21322       return *this;
21323     }
21324 
setImageVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21325     SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
21326     {
21327       image = image_;
21328       return *this;
21329     }
21330 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21331     SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
21332     {
21333       bindCount = bindCount_;
21334       return *this;
21335     }
21336 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21337     SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT
21338     {
21339       pBinds = pBinds_;
21340       return *this;
21341     }
21342 
21343 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21344     SparseImageMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
21345     {
21346       bindCount = static_cast<uint32_t>( binds_.size() );
21347       pBinds = binds_.data();
21348       return *this;
21349     }
21350 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21351 
21352 
operator VkSparseImageMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21353     operator VkSparseImageMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT
21354     {
21355       return *reinterpret_cast<const VkSparseImageMemoryBindInfo*>( this );
21356     }
21357 
operator VkSparseImageMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21358     operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
21359     {
21360       return *reinterpret_cast<VkSparseImageMemoryBindInfo*>( this );
21361     }
21362 
21363 
21364 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21365     auto operator<=>( SparseImageMemoryBindInfo const& ) const = default;
21366 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21367     bool operator==( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21368     {
21369       return ( image == rhs.image )
21370           && ( bindCount == rhs.bindCount )
21371           && ( pBinds == rhs.pBinds );
21372     }
21373 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21374     bool operator!=( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21375     {
21376       return !operator==( rhs );
21377     }
21378 #endif
21379 
21380 
21381 
21382   public:
21383     VULKAN_HPP_NAMESPACE::Image image = {};
21384     uint32_t bindCount = {};
21385     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds = {};
21386 
21387   };
21388   static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" );
21389   static_assert( std::is_standard_layout<SparseImageMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
21390 
21391   struct BindSparseInfo
21392   {
21393     static const bool allowDuplicate = false;
21394     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo;
21395 
21396 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21397     VULKAN_HPP_CONSTEXPR BindSparseInfo(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, uint32_t bufferBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ = {}, uint32_t imageOpaqueBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ = {}, uint32_t imageBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ = {}, uint32_t signalSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {}) VULKAN_HPP_NOEXCEPT
21398     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), bufferBindCount( bufferBindCount_ ), pBufferBinds( pBufferBinds_ ), imageOpaqueBindCount( imageOpaqueBindCount_ ), pImageOpaqueBinds( pImageOpaqueBinds_ ), imageBindCount( imageBindCount_ ), pImageBinds( pImageBinds_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
21399     {}
21400 
21401     VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21402 
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21403     BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21404     {
21405       *this = rhs;
21406     }
21407 
21408 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21409     BindSparseInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ = {} )
21410     : waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), bufferBindCount( static_cast<uint32_t>( bufferBinds_.size() ) ), pBufferBinds( bufferBinds_.data() ), imageOpaqueBindCount( static_cast<uint32_t>( imageOpaqueBinds_.size() ) ), pImageOpaqueBinds( imageOpaqueBinds_.data() ), imageBindCount( static_cast<uint32_t>( imageBinds_.size() ) ), pImageBinds( imageBinds_.data() ), signalSemaphoreCount( static_cast<uint32_t>( signalSemaphores_.size() ) ), pSignalSemaphores( signalSemaphores_.data() )
21411     {}
21412 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21413 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21414 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo21415     BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21416     {
21417       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindSparseInfo const *>( &rhs );
21418       return *this;
21419     }
21420 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo21421     BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
21422     {
21423       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindSparseInfo ) );
21424       return *this;
21425     }
21426 
setPNextVULKAN_HPP_NAMESPACE::BindSparseInfo21427     BindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21428     {
21429       pNext = pNext_;
21430       return *this;
21431     }
21432 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo21433     BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
21434     {
21435       waitSemaphoreCount = waitSemaphoreCount_;
21436       return *this;
21437     }
21438 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21439     BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
21440     {
21441       pWaitSemaphores = pWaitSemaphores_;
21442       return *this;
21443     }
21444 
21445 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21446     BindSparseInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
21447     {
21448       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
21449       pWaitSemaphores = waitSemaphores_.data();
21450       return *this;
21451     }
21452 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21453 
setBufferBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21454     BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT
21455     {
21456       bufferBindCount = bufferBindCount_;
21457       return *this;
21458     }
21459 
setPBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21460     BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ ) VULKAN_HPP_NOEXCEPT
21461     {
21462       pBufferBinds = pBufferBinds_;
21463       return *this;
21464     }
21465 
21466 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21467     BindSparseInfo & setBufferBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ ) VULKAN_HPP_NOEXCEPT
21468     {
21469       bufferBindCount = static_cast<uint32_t>( bufferBinds_.size() );
21470       pBufferBinds = bufferBinds_.data();
21471       return *this;
21472     }
21473 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21474 
setImageOpaqueBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21475     BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT
21476     {
21477       imageOpaqueBindCount = imageOpaqueBindCount_;
21478       return *this;
21479     }
21480 
setPImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21481     BindSparseInfo & setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
21482     {
21483       pImageOpaqueBinds = pImageOpaqueBinds_;
21484       return *this;
21485     }
21486 
21487 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21488     BindSparseInfo & setImageOpaqueBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
21489     {
21490       imageOpaqueBindCount = static_cast<uint32_t>( imageOpaqueBinds_.size() );
21491       pImageOpaqueBinds = imageOpaqueBinds_.data();
21492       return *this;
21493     }
21494 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21495 
setImageBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21496     BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT
21497     {
21498       imageBindCount = imageBindCount_;
21499       return *this;
21500     }
21501 
setPImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21502     BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ ) VULKAN_HPP_NOEXCEPT
21503     {
21504       pImageBinds = pImageBinds_;
21505       return *this;
21506     }
21507 
21508 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21509     BindSparseInfo & setImageBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ ) VULKAN_HPP_NOEXCEPT
21510     {
21511       imageBindCount = static_cast<uint32_t>( imageBinds_.size() );
21512       pImageBinds = imageBinds_.data();
21513       return *this;
21514     }
21515 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21516 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo21517     BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
21518     {
21519       signalSemaphoreCount = signalSemaphoreCount_;
21520       return *this;
21521     }
21522 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21523     BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
21524     {
21525       pSignalSemaphores = pSignalSemaphores_;
21526       return *this;
21527     }
21528 
21529 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21530     BindSparseInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
21531     {
21532       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
21533       pSignalSemaphores = signalSemaphores_.data();
21534       return *this;
21535     }
21536 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21537 
21538 
operator VkBindSparseInfo const&VULKAN_HPP_NAMESPACE::BindSparseInfo21539     operator VkBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
21540     {
21541       return *reinterpret_cast<const VkBindSparseInfo*>( this );
21542     }
21543 
operator VkBindSparseInfo&VULKAN_HPP_NAMESPACE::BindSparseInfo21544     operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
21545     {
21546       return *reinterpret_cast<VkBindSparseInfo*>( this );
21547     }
21548 
21549 
21550 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21551     auto operator<=>( BindSparseInfo const& ) const = default;
21552 #else
operator ==VULKAN_HPP_NAMESPACE::BindSparseInfo21553     bool operator==( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21554     {
21555       return ( sType == rhs.sType )
21556           && ( pNext == rhs.pNext )
21557           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
21558           && ( pWaitSemaphores == rhs.pWaitSemaphores )
21559           && ( bufferBindCount == rhs.bufferBindCount )
21560           && ( pBufferBinds == rhs.pBufferBinds )
21561           && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount )
21562           && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds )
21563           && ( imageBindCount == rhs.imageBindCount )
21564           && ( pImageBinds == rhs.pImageBinds )
21565           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
21566           && ( pSignalSemaphores == rhs.pSignalSemaphores );
21567     }
21568 
operator !=VULKAN_HPP_NAMESPACE::BindSparseInfo21569     bool operator!=( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
21570     {
21571       return !operator==( rhs );
21572     }
21573 #endif
21574 
21575 
21576 
21577   public:
21578     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo;
21579     const void* pNext = {};
21580     uint32_t waitSemaphoreCount = {};
21581     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
21582     uint32_t bufferBindCount = {};
21583     const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds = {};
21584     uint32_t imageOpaqueBindCount = {};
21585     const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds = {};
21586     uint32_t imageBindCount = {};
21587     const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds = {};
21588     uint32_t signalSemaphoreCount = {};
21589     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
21590 
21591   };
21592   static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" );
21593   static_assert( std::is_standard_layout<BindSparseInfo>::value, "struct wrapper is not a standard layout!" );
21594 
21595   template <>
21596   struct CppType<StructureType, StructureType::eBindSparseInfo>
21597   {
21598     using Type = BindSparseInfo;
21599   };
21600 
21601   struct BindVertexBufferIndirectCommandNV
21602   {
21603 
21604 
21605 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21606     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, uint32_t stride_ = {}) VULKAN_HPP_NOEXCEPT
21607     : bufferAddress( bufferAddress_ ), size( size_ ), stride( stride_ )
21608     {}
21609 
21610     VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21611 
BindVertexBufferIndirectCommandNVVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21612     BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21613     {
21614       *this = rhs;
21615     }
21616 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21617 
operator =VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21618     BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21619     {
21620       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const *>( &rhs );
21621       return *this;
21622     }
21623 
operator =VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21624     BindVertexBufferIndirectCommandNV & operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
21625     {
21626       memcpy( static_cast<void *>( this ), &rhs, sizeof( BindVertexBufferIndirectCommandNV ) );
21627       return *this;
21628     }
21629 
setBufferAddressVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21630     BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
21631     {
21632       bufferAddress = bufferAddress_;
21633       return *this;
21634     }
21635 
setSizeVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21636     BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
21637     {
21638       size = size_;
21639       return *this;
21640     }
21641 
setStrideVULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21642     BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
21643     {
21644       stride = stride_;
21645       return *this;
21646     }
21647 
21648 
operator VkBindVertexBufferIndirectCommandNV const&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21649     operator VkBindVertexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
21650     {
21651       return *reinterpret_cast<const VkBindVertexBufferIndirectCommandNV*>( this );
21652     }
21653 
operator VkBindVertexBufferIndirectCommandNV&VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21654     operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
21655     {
21656       return *reinterpret_cast<VkBindVertexBufferIndirectCommandNV*>( this );
21657     }
21658 
21659 
21660 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21661     auto operator<=>( BindVertexBufferIndirectCommandNV const& ) const = default;
21662 #else
operator ==VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21663     bool operator==( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21664     {
21665       return ( bufferAddress == rhs.bufferAddress )
21666           && ( size == rhs.size )
21667           && ( stride == rhs.stride );
21668     }
21669 
operator !=VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV21670     bool operator!=( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
21671     {
21672       return !operator==( rhs );
21673     }
21674 #endif
21675 
21676 
21677 
21678   public:
21679     VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
21680     uint32_t size = {};
21681     uint32_t stride = {};
21682 
21683   };
21684   static_assert( sizeof( BindVertexBufferIndirectCommandNV ) == sizeof( VkBindVertexBufferIndirectCommandNV ), "struct and wrapper have different size!" );
21685   static_assert( std::is_standard_layout<BindVertexBufferIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
21686 
21687   struct ImageSubresourceLayers
21688   {
21689 
21690 
21691 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21692     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
21693     : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
21694     {}
21695 
21696     VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21697 
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21698     ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
21699     {
21700       *this = rhs;
21701     }
21702 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21703 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21704     ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
21705     {
21706       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const *>( &rhs );
21707       return *this;
21708     }
21709 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21710     ImageSubresourceLayers & operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
21711     {
21712       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSubresourceLayers ) );
21713       return *this;
21714     }
21715 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21716     ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
21717     {
21718       aspectMask = aspectMask_;
21719       return *this;
21720     }
21721 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21722     ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
21723     {
21724       mipLevel = mipLevel_;
21725       return *this;
21726     }
21727 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21728     ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
21729     {
21730       baseArrayLayer = baseArrayLayer_;
21731       return *this;
21732     }
21733 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceLayers21734     ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
21735     {
21736       layerCount = layerCount_;
21737       return *this;
21738     }
21739 
21740 
operator VkImageSubresourceLayers const&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21741     operator VkImageSubresourceLayers const&() const VULKAN_HPP_NOEXCEPT
21742     {
21743       return *reinterpret_cast<const VkImageSubresourceLayers*>( this );
21744     }
21745 
operator VkImageSubresourceLayers&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21746     operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
21747     {
21748       return *reinterpret_cast<VkImageSubresourceLayers*>( this );
21749     }
21750 
21751 
21752 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21753     auto operator<=>( ImageSubresourceLayers const& ) const = default;
21754 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21755     bool operator==( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
21756     {
21757       return ( aspectMask == rhs.aspectMask )
21758           && ( mipLevel == rhs.mipLevel )
21759           && ( baseArrayLayer == rhs.baseArrayLayer )
21760           && ( layerCount == rhs.layerCount );
21761     }
21762 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceLayers21763     bool operator!=( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT
21764     {
21765       return !operator==( rhs );
21766     }
21767 #endif
21768 
21769 
21770 
21771   public:
21772     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
21773     uint32_t mipLevel = {};
21774     uint32_t baseArrayLayer = {};
21775     uint32_t layerCount = {};
21776 
21777   };
21778   static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" );
21779   static_assert( std::is_standard_layout<ImageSubresourceLayers>::value, "struct wrapper is not a standard layout!" );
21780 
21781   struct ImageBlit2KHR
21782   {
21783     static const bool allowDuplicate = false;
21784     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2KHR;
21785 
21786 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlit2KHRVULKAN_HPP_NAMESPACE::ImageBlit2KHR21787     VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const& srcOffsets_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const& dstOffsets_ = {}) VULKAN_HPP_NOEXCEPT
21788     : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
21789     {}
21790 
21791     VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21792 
ImageBlit2KHRVULKAN_HPP_NAMESPACE::ImageBlit2KHR21793     ImageBlit2KHR( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21794     {
21795       *this = rhs;
21796     }
21797 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21798 
operator =VULKAN_HPP_NAMESPACE::ImageBlit2KHR21799     ImageBlit2KHR & operator=( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21800     {
21801       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit2KHR const *>( &rhs );
21802       return *this;
21803     }
21804 
operator =VULKAN_HPP_NAMESPACE::ImageBlit2KHR21805     ImageBlit2KHR & operator=( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21806     {
21807       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageBlit2KHR ) );
21808       return *this;
21809     }
21810 
setPNextVULKAN_HPP_NAMESPACE::ImageBlit2KHR21811     ImageBlit2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21812     {
21813       pNext = pNext_;
21814       return *this;
21815     }
21816 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit2KHR21817     ImageBlit2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
21818     {
21819       srcSubresource = srcSubresource_;
21820       return *this;
21821     }
21822 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit2KHR21823     ImageBlit2KHR & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
21824     {
21825       srcOffsets = srcOffsets_;
21826       return *this;
21827     }
21828 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit2KHR21829     ImageBlit2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
21830     {
21831       dstSubresource = dstSubresource_;
21832       return *this;
21833     }
21834 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit2KHR21835     ImageBlit2KHR & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
21836     {
21837       dstOffsets = dstOffsets_;
21838       return *this;
21839     }
21840 
21841 
operator VkImageBlit2KHR const&VULKAN_HPP_NAMESPACE::ImageBlit2KHR21842     operator VkImageBlit2KHR const&() const VULKAN_HPP_NOEXCEPT
21843     {
21844       return *reinterpret_cast<const VkImageBlit2KHR*>( this );
21845     }
21846 
operator VkImageBlit2KHR&VULKAN_HPP_NAMESPACE::ImageBlit2KHR21847     operator VkImageBlit2KHR &() VULKAN_HPP_NOEXCEPT
21848     {
21849       return *reinterpret_cast<VkImageBlit2KHR*>( this );
21850     }
21851 
21852 
21853 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21854     auto operator<=>( ImageBlit2KHR const& ) const = default;
21855 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit2KHR21856     bool operator==( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21857     {
21858       return ( sType == rhs.sType )
21859           && ( pNext == rhs.pNext )
21860           && ( srcSubresource == rhs.srcSubresource )
21861           && ( srcOffsets == rhs.srcOffsets )
21862           && ( dstSubresource == rhs.dstSubresource )
21863           && ( dstOffsets == rhs.dstOffsets );
21864     }
21865 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit2KHR21866     bool operator!=( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
21867     {
21868       return !operator==( rhs );
21869     }
21870 #endif
21871 
21872 
21873 
21874   public:
21875     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2KHR;
21876     const void* pNext = {};
21877     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
21878     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
21879     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
21880     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
21881 
21882   };
21883   static_assert( sizeof( ImageBlit2KHR ) == sizeof( VkImageBlit2KHR ), "struct and wrapper have different size!" );
21884   static_assert( std::is_standard_layout<ImageBlit2KHR>::value, "struct wrapper is not a standard layout!" );
21885 
21886   template <>
21887   struct CppType<StructureType, StructureType::eImageBlit2KHR>
21888   {
21889     using Type = ImageBlit2KHR;
21890   };
21891 
21892   struct BlitImageInfo2KHR
21893   {
21894     static const bool allowDuplicate = false;
21895     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2KHR;
21896 
21897 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21898     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions_ = {}, VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest) VULKAN_HPP_NOEXCEPT
21899     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ), filter( filter_ )
21900     {}
21901 
21902     VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
21903 
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21904     BlitImageInfo2KHR( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21905     {
21906       *this = rhs;
21907     }
21908 
21909 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BlitImageInfo2KHRVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21910     BlitImageInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2KHR> const & regions_, VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest )
21911     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() ), filter( filter_ )
21912     {}
21913 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21914 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
21915 
operator =VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21916     BlitImageInfo2KHR & operator=( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21917     {
21918       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR const *>( &rhs );
21919       return *this;
21920     }
21921 
operator =VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21922     BlitImageInfo2KHR & operator=( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
21923     {
21924       memcpy( static_cast<void *>( this ), &rhs, sizeof( BlitImageInfo2KHR ) );
21925       return *this;
21926     }
21927 
setPNextVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21928     BlitImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
21929     {
21930       pNext = pNext_;
21931       return *this;
21932     }
21933 
setSrcImageVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21934     BlitImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
21935     {
21936       srcImage = srcImage_;
21937       return *this;
21938     }
21939 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21940     BlitImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
21941     {
21942       srcImageLayout = srcImageLayout_;
21943       return *this;
21944     }
21945 
setDstImageVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21946     BlitImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
21947     {
21948       dstImage = dstImage_;
21949       return *this;
21950     }
21951 
setDstImageLayoutVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21952     BlitImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
21953     {
21954       dstImageLayout = dstImageLayout_;
21955       return *this;
21956     }
21957 
setRegionCountVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21958     BlitImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
21959     {
21960       regionCount = regionCount_;
21961       return *this;
21962     }
21963 
setPRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21964     BlitImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
21965     {
21966       pRegions = pRegions_;
21967       return *this;
21968     }
21969 
21970 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21971     BlitImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
21972     {
21973       regionCount = static_cast<uint32_t>( regions_.size() );
21974       pRegions = regions_.data();
21975       return *this;
21976     }
21977 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
21978 
setFilterVULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21979     BlitImageInfo2KHR & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT
21980     {
21981       filter = filter_;
21982       return *this;
21983     }
21984 
21985 
operator VkBlitImageInfo2KHR const&VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21986     operator VkBlitImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
21987     {
21988       return *reinterpret_cast<const VkBlitImageInfo2KHR*>( this );
21989     }
21990 
operator VkBlitImageInfo2KHR&VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR21991     operator VkBlitImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
21992     {
21993       return *reinterpret_cast<VkBlitImageInfo2KHR*>( this );
21994     }
21995 
21996 
21997 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
21998     auto operator<=>( BlitImageInfo2KHR const& ) const = default;
21999 #else
operator ==VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22000     bool operator==( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22001     {
22002       return ( sType == rhs.sType )
22003           && ( pNext == rhs.pNext )
22004           && ( srcImage == rhs.srcImage )
22005           && ( srcImageLayout == rhs.srcImageLayout )
22006           && ( dstImage == rhs.dstImage )
22007           && ( dstImageLayout == rhs.dstImageLayout )
22008           && ( regionCount == rhs.regionCount )
22009           && ( pRegions == rhs.pRegions )
22010           && ( filter == rhs.filter );
22011     }
22012 
operator !=VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR22013     bool operator!=( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22014     {
22015       return !operator==( rhs );
22016     }
22017 #endif
22018 
22019 
22020 
22021   public:
22022     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2KHR;
22023     const void* pNext = {};
22024     VULKAN_HPP_NAMESPACE::Image srcImage = {};
22025     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
22026     VULKAN_HPP_NAMESPACE::Image dstImage = {};
22027     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
22028     uint32_t regionCount = {};
22029     const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions = {};
22030     VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
22031 
22032   };
22033   static_assert( sizeof( BlitImageInfo2KHR ) == sizeof( VkBlitImageInfo2KHR ), "struct and wrapper have different size!" );
22034   static_assert( std::is_standard_layout<BlitImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
22035 
22036   template <>
22037   struct CppType<StructureType, StructureType::eBlitImageInfo2KHR>
22038   {
22039     using Type = BlitImageInfo2KHR;
22040   };
22041 
22042   struct BufferCopy
22043   {
22044 
22045 
22046 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy22047     VULKAN_HPP_CONSTEXPR BufferCopy(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
22048     : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
22049     {}
22050 
22051     VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22052 
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy22053     BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22054     {
22055       *this = rhs;
22056     }
22057 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22058 
operator =VULKAN_HPP_NAMESPACE::BufferCopy22059     BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22060     {
22061       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy const *>( &rhs );
22062       return *this;
22063     }
22064 
operator =VULKAN_HPP_NAMESPACE::BufferCopy22065     BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22066     {
22067       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCopy ) );
22068       return *this;
22069     }
22070 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy22071     BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
22072     {
22073       srcOffset = srcOffset_;
22074       return *this;
22075     }
22076 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy22077     BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
22078     {
22079       dstOffset = dstOffset_;
22080       return *this;
22081     }
22082 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy22083     BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22084     {
22085       size = size_;
22086       return *this;
22087     }
22088 
22089 
operator VkBufferCopy const&VULKAN_HPP_NAMESPACE::BufferCopy22090     operator VkBufferCopy const&() const VULKAN_HPP_NOEXCEPT
22091     {
22092       return *reinterpret_cast<const VkBufferCopy*>( this );
22093     }
22094 
operator VkBufferCopy&VULKAN_HPP_NAMESPACE::BufferCopy22095     operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT
22096     {
22097       return *reinterpret_cast<VkBufferCopy*>( this );
22098     }
22099 
22100 
22101 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22102     auto operator<=>( BufferCopy const& ) const = default;
22103 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy22104     bool operator==( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22105     {
22106       return ( srcOffset == rhs.srcOffset )
22107           && ( dstOffset == rhs.dstOffset )
22108           && ( size == rhs.size );
22109     }
22110 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy22111     bool operator!=( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22112     {
22113       return !operator==( rhs );
22114     }
22115 #endif
22116 
22117 
22118 
22119   public:
22120     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
22121     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
22122     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22123 
22124   };
22125   static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" );
22126   static_assert( std::is_standard_layout<BufferCopy>::value, "struct wrapper is not a standard layout!" );
22127 
22128   struct BufferCopy2KHR
22129   {
22130     static const bool allowDuplicate = false;
22131     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2KHR;
22132 
22133 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCopy2KHRVULKAN_HPP_NAMESPACE::BufferCopy2KHR22134     VULKAN_HPP_CONSTEXPR BufferCopy2KHR(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
22135     : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ )
22136     {}
22137 
22138     VULKAN_HPP_CONSTEXPR BufferCopy2KHR( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22139 
BufferCopy2KHRVULKAN_HPP_NAMESPACE::BufferCopy2KHR22140     BufferCopy2KHR( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22141     {
22142       *this = rhs;
22143     }
22144 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22145 
operator =VULKAN_HPP_NAMESPACE::BufferCopy2KHR22146     BufferCopy2KHR & operator=( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22147     {
22148       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy2KHR const *>( &rhs );
22149       return *this;
22150     }
22151 
operator =VULKAN_HPP_NAMESPACE::BufferCopy2KHR22152     BufferCopy2KHR & operator=( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22153     {
22154       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCopy2KHR ) );
22155       return *this;
22156     }
22157 
setPNextVULKAN_HPP_NAMESPACE::BufferCopy2KHR22158     BufferCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22159     {
22160       pNext = pNext_;
22161       return *this;
22162     }
22163 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy2KHR22164     BufferCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
22165     {
22166       srcOffset = srcOffset_;
22167       return *this;
22168     }
22169 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy2KHR22170     BufferCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
22171     {
22172       dstOffset = dstOffset_;
22173       return *this;
22174     }
22175 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy2KHR22176     BufferCopy2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22177     {
22178       size = size_;
22179       return *this;
22180     }
22181 
22182 
operator VkBufferCopy2KHR const&VULKAN_HPP_NAMESPACE::BufferCopy2KHR22183     operator VkBufferCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
22184     {
22185       return *reinterpret_cast<const VkBufferCopy2KHR*>( this );
22186     }
22187 
operator VkBufferCopy2KHR&VULKAN_HPP_NAMESPACE::BufferCopy2KHR22188     operator VkBufferCopy2KHR &() VULKAN_HPP_NOEXCEPT
22189     {
22190       return *reinterpret_cast<VkBufferCopy2KHR*>( this );
22191     }
22192 
22193 
22194 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22195     auto operator<=>( BufferCopy2KHR const& ) const = default;
22196 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCopy2KHR22197     bool operator==( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22198     {
22199       return ( sType == rhs.sType )
22200           && ( pNext == rhs.pNext )
22201           && ( srcOffset == rhs.srcOffset )
22202           && ( dstOffset == rhs.dstOffset )
22203           && ( size == rhs.size );
22204     }
22205 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy2KHR22206     bool operator!=( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22207     {
22208       return !operator==( rhs );
22209     }
22210 #endif
22211 
22212 
22213 
22214   public:
22215     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2KHR;
22216     const void* pNext = {};
22217     VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
22218     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
22219     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22220 
22221   };
22222   static_assert( sizeof( BufferCopy2KHR ) == sizeof( VkBufferCopy2KHR ), "struct and wrapper have different size!" );
22223   static_assert( std::is_standard_layout<BufferCopy2KHR>::value, "struct wrapper is not a standard layout!" );
22224 
22225   template <>
22226   struct CppType<StructureType, StructureType::eBufferCopy2KHR>
22227   {
22228     using Type = BufferCopy2KHR;
22229   };
22230 
22231   struct BufferCreateInfo
22232   {
22233     static const bool allowDuplicate = false;
22234     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo;
22235 
22236 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo22237     VULKAN_HPP_CONSTEXPR BufferCreateInfo(VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}) VULKAN_HPP_NOEXCEPT
22238     : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
22239     {}
22240 
22241     VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22242 
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo22243     BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22244     {
22245       *this = rhs;
22246     }
22247 
22248 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo22249     BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_, VULKAN_HPP_NAMESPACE::DeviceSize size_, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ )
22250     : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
22251     {}
22252 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22253 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22254 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo22255     BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22256     {
22257       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCreateInfo const *>( &rhs );
22258       return *this;
22259     }
22260 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo22261     BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22262     {
22263       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferCreateInfo ) );
22264       return *this;
22265     }
22266 
setPNextVULKAN_HPP_NAMESPACE::BufferCreateInfo22267     BufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22268     {
22269       pNext = pNext_;
22270       return *this;
22271     }
22272 
setFlagsVULKAN_HPP_NAMESPACE::BufferCreateInfo22273     BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
22274     {
22275       flags = flags_;
22276       return *this;
22277     }
22278 
setSizeVULKAN_HPP_NAMESPACE::BufferCreateInfo22279     BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22280     {
22281       size = size_;
22282       return *this;
22283     }
22284 
setUsageVULKAN_HPP_NAMESPACE::BufferCreateInfo22285     BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
22286     {
22287       usage = usage_;
22288       return *this;
22289     }
22290 
setSharingModeVULKAN_HPP_NAMESPACE::BufferCreateInfo22291     BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
22292     {
22293       sharingMode = sharingMode_;
22294       return *this;
22295     }
22296 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::BufferCreateInfo22297     BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
22298     {
22299       queueFamilyIndexCount = queueFamilyIndexCount_;
22300       return *this;
22301     }
22302 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo22303     BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
22304     {
22305       pQueueFamilyIndices = pQueueFamilyIndices_;
22306       return *this;
22307     }
22308 
22309 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo22310     BufferCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
22311     {
22312       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
22313       pQueueFamilyIndices = queueFamilyIndices_.data();
22314       return *this;
22315     }
22316 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
22317 
22318 
operator VkBufferCreateInfo const&VULKAN_HPP_NAMESPACE::BufferCreateInfo22319     operator VkBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
22320     {
22321       return *reinterpret_cast<const VkBufferCreateInfo*>( this );
22322     }
22323 
operator VkBufferCreateInfo&VULKAN_HPP_NAMESPACE::BufferCreateInfo22324     operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
22325     {
22326       return *reinterpret_cast<VkBufferCreateInfo*>( this );
22327     }
22328 
22329 
22330 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22331     auto operator<=>( BufferCreateInfo const& ) const = default;
22332 #else
operator ==VULKAN_HPP_NAMESPACE::BufferCreateInfo22333     bool operator==( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22334     {
22335       return ( sType == rhs.sType )
22336           && ( pNext == rhs.pNext )
22337           && ( flags == rhs.flags )
22338           && ( size == rhs.size )
22339           && ( usage == rhs.usage )
22340           && ( sharingMode == rhs.sharingMode )
22341           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
22342           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
22343     }
22344 
operator !=VULKAN_HPP_NAMESPACE::BufferCreateInfo22345     bool operator!=( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22346     {
22347       return !operator==( rhs );
22348     }
22349 #endif
22350 
22351 
22352 
22353   public:
22354     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo;
22355     const void* pNext = {};
22356     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
22357     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22358     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
22359     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
22360     uint32_t queueFamilyIndexCount = {};
22361     const uint32_t* pQueueFamilyIndices = {};
22362 
22363   };
22364   static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" );
22365   static_assert( std::is_standard_layout<BufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
22366 
22367   template <>
22368   struct CppType<StructureType, StructureType::eBufferCreateInfo>
22369   {
22370     using Type = BufferCreateInfo;
22371   };
22372 
22373   struct BufferDeviceAddressCreateInfoEXT
22374   {
22375     static const bool allowDuplicate = false;
22376     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT;
22377 
22378 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22379     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT
22380     : deviceAddress( deviceAddress_ )
22381     {}
22382 
22383     VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22384 
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22385     BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22386     {
22387       *this = rhs;
22388     }
22389 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22390 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22391     BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22392     {
22393       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const *>( &rhs );
22394       return *this;
22395     }
22396 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22397     BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
22398     {
22399       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferDeviceAddressCreateInfoEXT ) );
22400       return *this;
22401     }
22402 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22403     BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22404     {
22405       pNext = pNext_;
22406       return *this;
22407     }
22408 
setDeviceAddressVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22409     BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
22410     {
22411       deviceAddress = deviceAddress_;
22412       return *this;
22413     }
22414 
22415 
operator VkBufferDeviceAddressCreateInfoEXT const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22416     operator VkBufferDeviceAddressCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
22417     {
22418       return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>( this );
22419     }
22420 
operator VkBufferDeviceAddressCreateInfoEXT&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22421     operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
22422     {
22423       return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>( this );
22424     }
22425 
22426 
22427 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22428     auto operator<=>( BufferDeviceAddressCreateInfoEXT const& ) const = default;
22429 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22430     bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
22431     {
22432       return ( sType == rhs.sType )
22433           && ( pNext == rhs.pNext )
22434           && ( deviceAddress == rhs.deviceAddress );
22435     }
22436 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22437     bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
22438     {
22439       return !operator==( rhs );
22440     }
22441 #endif
22442 
22443 
22444 
22445   public:
22446     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
22447     const void* pNext = {};
22448     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
22449 
22450   };
22451   static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" );
22452   static_assert( std::is_standard_layout<BufferDeviceAddressCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
22453 
22454   template <>
22455   struct CppType<StructureType, StructureType::eBufferDeviceAddressCreateInfoEXT>
22456   {
22457     using Type = BufferDeviceAddressCreateInfoEXT;
22458   };
22459 
22460   struct BufferDeviceAddressInfo
22461   {
22462     static const bool allowDuplicate = false;
22463     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo;
22464 
22465 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22466     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
22467     : buffer( buffer_ )
22468     {}
22469 
22470     VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22471 
BufferDeviceAddressInfoVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22472     BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22473     {
22474       *this = rhs;
22475     }
22476 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22477 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22478     BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22479     {
22480       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const *>( &rhs );
22481       return *this;
22482     }
22483 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22484     BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
22485     {
22486       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferDeviceAddressInfo ) );
22487       return *this;
22488     }
22489 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22490     BufferDeviceAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22491     {
22492       pNext = pNext_;
22493       return *this;
22494     }
22495 
setBufferVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22496     BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22497     {
22498       buffer = buffer_;
22499       return *this;
22500     }
22501 
22502 
operator VkBufferDeviceAddressInfo const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22503     operator VkBufferDeviceAddressInfo const&() const VULKAN_HPP_NOEXCEPT
22504     {
22505       return *reinterpret_cast<const VkBufferDeviceAddressInfo*>( this );
22506     }
22507 
operator VkBufferDeviceAddressInfo&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22508     operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
22509     {
22510       return *reinterpret_cast<VkBufferDeviceAddressInfo*>( this );
22511     }
22512 
22513 
22514 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22515     auto operator<=>( BufferDeviceAddressInfo const& ) const = default;
22516 #else
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22517     bool operator==( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22518     {
22519       return ( sType == rhs.sType )
22520           && ( pNext == rhs.pNext )
22521           && ( buffer == rhs.buffer );
22522     }
22523 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo22524     bool operator!=( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
22525     {
22526       return !operator==( rhs );
22527     }
22528 #endif
22529 
22530 
22531 
22532   public:
22533     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo;
22534     const void* pNext = {};
22535     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
22536 
22537   };
22538   static_assert( sizeof( BufferDeviceAddressInfo ) == sizeof( VkBufferDeviceAddressInfo ), "struct and wrapper have different size!" );
22539   static_assert( std::is_standard_layout<BufferDeviceAddressInfo>::value, "struct wrapper is not a standard layout!" );
22540 
22541   template <>
22542   struct CppType<StructureType, StructureType::eBufferDeviceAddressInfo>
22543   {
22544     using Type = BufferDeviceAddressInfo;
22545   };
22546   using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
22547   using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
22548 
22549   struct BufferImageCopy
22550   {
22551 
22552 
22553 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy22554     VULKAN_HPP_CONSTEXPR BufferImageCopy(VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, uint32_t bufferRowLength_ = {}, uint32_t bufferImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT
22555     : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
22556     {}
22557 
22558     VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22559 
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy22560     BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22561     {
22562       *this = rhs;
22563     }
22564 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22565 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy22566     BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22567     {
22568       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy const *>( &rhs );
22569       return *this;
22570     }
22571 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy22572     BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
22573     {
22574       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferImageCopy ) );
22575       return *this;
22576     }
22577 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy22578     BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
22579     {
22580       bufferOffset = bufferOffset_;
22581       return *this;
22582     }
22583 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy22584     BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
22585     {
22586       bufferRowLength = bufferRowLength_;
22587       return *this;
22588     }
22589 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy22590     BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
22591     {
22592       bufferImageHeight = bufferImageHeight_;
22593       return *this;
22594     }
22595 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy22596     BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
22597     {
22598       imageSubresource = imageSubresource_;
22599       return *this;
22600     }
22601 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy22602     BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
22603     {
22604       imageOffset = imageOffset_;
22605       return *this;
22606     }
22607 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy22608     BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
22609     {
22610       imageExtent = imageExtent_;
22611       return *this;
22612     }
22613 
22614 
operator VkBufferImageCopy const&VULKAN_HPP_NAMESPACE::BufferImageCopy22615     operator VkBufferImageCopy const&() const VULKAN_HPP_NOEXCEPT
22616     {
22617       return *reinterpret_cast<const VkBufferImageCopy*>( this );
22618     }
22619 
operator VkBufferImageCopy&VULKAN_HPP_NAMESPACE::BufferImageCopy22620     operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
22621     {
22622       return *reinterpret_cast<VkBufferImageCopy*>( this );
22623     }
22624 
22625 
22626 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22627     auto operator<=>( BufferImageCopy const& ) const = default;
22628 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy22629     bool operator==( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22630     {
22631       return ( bufferOffset == rhs.bufferOffset )
22632           && ( bufferRowLength == rhs.bufferRowLength )
22633           && ( bufferImageHeight == rhs.bufferImageHeight )
22634           && ( imageSubresource == rhs.imageSubresource )
22635           && ( imageOffset == rhs.imageOffset )
22636           && ( imageExtent == rhs.imageExtent );
22637     }
22638 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy22639     bool operator!=( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
22640     {
22641       return !operator==( rhs );
22642     }
22643 #endif
22644 
22645 
22646 
22647   public:
22648     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
22649     uint32_t bufferRowLength = {};
22650     uint32_t bufferImageHeight = {};
22651     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
22652     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
22653     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
22654 
22655   };
22656   static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" );
22657   static_assert( std::is_standard_layout<BufferImageCopy>::value, "struct wrapper is not a standard layout!" );
22658 
22659   struct BufferImageCopy2KHR
22660   {
22661     static const bool allowDuplicate = false;
22662     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2KHR;
22663 
22664 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferImageCopy2KHRVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22665     VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR(VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, uint32_t bufferRowLength_ = {}, uint32_t bufferImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT
22666     : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ )
22667     {}
22668 
22669     VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22670 
BufferImageCopy2KHRVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22671     BufferImageCopy2KHR( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22672     {
22673       *this = rhs;
22674     }
22675 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22676 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22677     BufferImageCopy2KHR & operator=( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22678     {
22679       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR const *>( &rhs );
22680       return *this;
22681     }
22682 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22683     BufferImageCopy2KHR & operator=( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
22684     {
22685       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferImageCopy2KHR ) );
22686       return *this;
22687     }
22688 
setPNextVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22689     BufferImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22690     {
22691       pNext = pNext_;
22692       return *this;
22693     }
22694 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22695     BufferImageCopy2KHR & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
22696     {
22697       bufferOffset = bufferOffset_;
22698       return *this;
22699     }
22700 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22701     BufferImageCopy2KHR & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
22702     {
22703       bufferRowLength = bufferRowLength_;
22704       return *this;
22705     }
22706 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22707     BufferImageCopy2KHR & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
22708     {
22709       bufferImageHeight = bufferImageHeight_;
22710       return *this;
22711     }
22712 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22713     BufferImageCopy2KHR & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
22714     {
22715       imageSubresource = imageSubresource_;
22716       return *this;
22717     }
22718 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22719     BufferImageCopy2KHR & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
22720     {
22721       imageOffset = imageOffset_;
22722       return *this;
22723     }
22724 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22725     BufferImageCopy2KHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
22726     {
22727       imageExtent = imageExtent_;
22728       return *this;
22729     }
22730 
22731 
operator VkBufferImageCopy2KHR const&VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22732     operator VkBufferImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
22733     {
22734       return *reinterpret_cast<const VkBufferImageCopy2KHR*>( this );
22735     }
22736 
operator VkBufferImageCopy2KHR&VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22737     operator VkBufferImageCopy2KHR &() VULKAN_HPP_NOEXCEPT
22738     {
22739       return *reinterpret_cast<VkBufferImageCopy2KHR*>( this );
22740     }
22741 
22742 
22743 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22744     auto operator<=>( BufferImageCopy2KHR const& ) const = default;
22745 #else
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22746     bool operator==( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22747     {
22748       return ( sType == rhs.sType )
22749           && ( pNext == rhs.pNext )
22750           && ( bufferOffset == rhs.bufferOffset )
22751           && ( bufferRowLength == rhs.bufferRowLength )
22752           && ( bufferImageHeight == rhs.bufferImageHeight )
22753           && ( imageSubresource == rhs.imageSubresource )
22754           && ( imageOffset == rhs.imageOffset )
22755           && ( imageExtent == rhs.imageExtent );
22756     }
22757 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR22758     bool operator!=( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
22759     {
22760       return !operator==( rhs );
22761     }
22762 #endif
22763 
22764 
22765 
22766   public:
22767     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2KHR;
22768     const void* pNext = {};
22769     VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
22770     uint32_t bufferRowLength = {};
22771     uint32_t bufferImageHeight = {};
22772     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
22773     VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
22774     VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
22775 
22776   };
22777   static_assert( sizeof( BufferImageCopy2KHR ) == sizeof( VkBufferImageCopy2KHR ), "struct and wrapper have different size!" );
22778   static_assert( std::is_standard_layout<BufferImageCopy2KHR>::value, "struct wrapper is not a standard layout!" );
22779 
22780   template <>
22781   struct CppType<StructureType, StructureType::eBufferImageCopy2KHR>
22782   {
22783     using Type = BufferImageCopy2KHR;
22784   };
22785 
22786   struct BufferMemoryBarrier
22787   {
22788     static const bool allowDuplicate = false;
22789     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier;
22790 
22791 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22792     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
22793     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ )
22794     {}
22795 
22796     VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22797 
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22798     BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
22799     {
22800       *this = rhs;
22801     }
22802 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22803 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22804     BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
22805     {
22806       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const *>( &rhs );
22807       return *this;
22808     }
22809 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22810     BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
22811     {
22812       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferMemoryBarrier ) );
22813       return *this;
22814     }
22815 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22816     BufferMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22817     {
22818       pNext = pNext_;
22819       return *this;
22820     }
22821 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22822     BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
22823     {
22824       srcAccessMask = srcAccessMask_;
22825       return *this;
22826     }
22827 
setDstAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22828     BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
22829     {
22830       dstAccessMask = dstAccessMask_;
22831       return *this;
22832     }
22833 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22834     BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
22835     {
22836       srcQueueFamilyIndex = srcQueueFamilyIndex_;
22837       return *this;
22838     }
22839 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22840     BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
22841     {
22842       dstQueueFamilyIndex = dstQueueFamilyIndex_;
22843       return *this;
22844     }
22845 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22846     BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22847     {
22848       buffer = buffer_;
22849       return *this;
22850     }
22851 
setOffsetVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22852     BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
22853     {
22854       offset = offset_;
22855       return *this;
22856     }
22857 
setSizeVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22858     BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
22859     {
22860       size = size_;
22861       return *this;
22862     }
22863 
22864 
operator VkBufferMemoryBarrier const&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22865     operator VkBufferMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
22866     {
22867       return *reinterpret_cast<const VkBufferMemoryBarrier*>( this );
22868     }
22869 
operator VkBufferMemoryBarrier&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22870     operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
22871     {
22872       return *reinterpret_cast<VkBufferMemoryBarrier*>( this );
22873     }
22874 
22875 
22876 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22877     auto operator<=>( BufferMemoryBarrier const& ) const = default;
22878 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22879     bool operator==( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
22880     {
22881       return ( sType == rhs.sType )
22882           && ( pNext == rhs.pNext )
22883           && ( srcAccessMask == rhs.srcAccessMask )
22884           && ( dstAccessMask == rhs.dstAccessMask )
22885           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
22886           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
22887           && ( buffer == rhs.buffer )
22888           && ( offset == rhs.offset )
22889           && ( size == rhs.size );
22890     }
22891 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22892     bool operator!=( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
22893     {
22894       return !operator==( rhs );
22895     }
22896 #endif
22897 
22898 
22899 
22900   public:
22901     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier;
22902     const void* pNext = {};
22903     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
22904     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
22905     uint32_t srcQueueFamilyIndex = {};
22906     uint32_t dstQueueFamilyIndex = {};
22907     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
22908     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
22909     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
22910 
22911   };
22912   static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" );
22913   static_assert( std::is_standard_layout<BufferMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
22914 
22915   template <>
22916   struct CppType<StructureType, StructureType::eBufferMemoryBarrier>
22917   {
22918     using Type = BufferMemoryBarrier;
22919   };
22920 
22921   struct BufferMemoryRequirementsInfo2
22922   {
22923     static const bool allowDuplicate = false;
22924     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2;
22925 
22926 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222927     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
22928     : buffer( buffer_ )
22929     {}
22930 
22931     VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
22932 
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222933     BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
22934     {
22935       *this = rhs;
22936     }
22937 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
22938 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222939     BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
22940     {
22941       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const *>( &rhs );
22942       return *this;
22943     }
22944 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222945     BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
22946     {
22947       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferMemoryRequirementsInfo2 ) );
22948       return *this;
22949     }
22950 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222951     BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
22952     {
22953       pNext = pNext_;
22954       return *this;
22955     }
22956 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222957     BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
22958     {
22959       buffer = buffer_;
22960       return *this;
22961     }
22962 
22963 
operator VkBufferMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222964     operator VkBufferMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
22965     {
22966       return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( this );
22967     }
22968 
operator VkBufferMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222969     operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
22970     {
22971       return *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>( this );
22972     }
22973 
22974 
22975 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
22976     auto operator<=>( BufferMemoryRequirementsInfo2 const& ) const = default;
22977 #else
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222978     bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
22979     {
22980       return ( sType == rhs.sType )
22981           && ( pNext == rhs.pNext )
22982           && ( buffer == rhs.buffer );
22983     }
22984 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222985     bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
22986     {
22987       return !operator==( rhs );
22988     }
22989 #endif
22990 
22991 
22992 
22993   public:
22994     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
22995     const void* pNext = {};
22996     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
22997 
22998   };
22999   static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
23000   static_assert( std::is_standard_layout<BufferMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
23001 
23002   template <>
23003   struct CppType<StructureType, StructureType::eBufferMemoryRequirementsInfo2>
23004   {
23005     using Type = BufferMemoryRequirementsInfo2;
23006   };
23007   using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
23008 
23009   struct BufferOpaqueCaptureAddressCreateInfo
23010   {
23011     static const bool allowDuplicate = false;
23012     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
23013 
23014 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23015     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT
23016     : opaqueCaptureAddress( opaqueCaptureAddress_ )
23017     {}
23018 
23019     VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23020 
BufferOpaqueCaptureAddressCreateInfoVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23021     BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23022     {
23023       *this = rhs;
23024     }
23025 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23026 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23027     BufferOpaqueCaptureAddressCreateInfo & operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23028     {
23029       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const *>( &rhs );
23030       return *this;
23031     }
23032 
operator =VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23033     BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23034     {
23035       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferOpaqueCaptureAddressCreateInfo ) );
23036       return *this;
23037     }
23038 
setPNextVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23039     BufferOpaqueCaptureAddressCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23040     {
23041       pNext = pNext_;
23042       return *this;
23043     }
23044 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23045     BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
23046     {
23047       opaqueCaptureAddress = opaqueCaptureAddress_;
23048       return *this;
23049     }
23050 
23051 
operator VkBufferOpaqueCaptureAddressCreateInfo const&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23052     operator VkBufferOpaqueCaptureAddressCreateInfo const&() const VULKAN_HPP_NOEXCEPT
23053     {
23054       return *reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>( this );
23055     }
23056 
operator VkBufferOpaqueCaptureAddressCreateInfo&VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23057     operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
23058     {
23059       return *reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>( this );
23060     }
23061 
23062 
23063 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23064     auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const& ) const = default;
23065 #else
operator ==VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23066     bool operator==( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23067     {
23068       return ( sType == rhs.sType )
23069           && ( pNext == rhs.pNext )
23070           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
23071     }
23072 
operator !=VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo23073     bool operator!=( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23074     {
23075       return !operator==( rhs );
23076     }
23077 #endif
23078 
23079 
23080 
23081   public:
23082     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
23083     const void* pNext = {};
23084     uint64_t opaqueCaptureAddress = {};
23085 
23086   };
23087   static_assert( sizeof( BufferOpaqueCaptureAddressCreateInfo ) == sizeof( VkBufferOpaqueCaptureAddressCreateInfo ), "struct and wrapper have different size!" );
23088   static_assert( std::is_standard_layout<BufferOpaqueCaptureAddressCreateInfo>::value, "struct wrapper is not a standard layout!" );
23089 
23090   template <>
23091   struct CppType<StructureType, StructureType::eBufferOpaqueCaptureAddressCreateInfo>
23092   {
23093     using Type = BufferOpaqueCaptureAddressCreateInfo;
23094   };
23095   using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
23096 
23097   struct BufferViewCreateInfo
23098   {
23099     static const bool allowDuplicate = false;
23100     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo;
23101 
23102 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23103     VULKAN_HPP_CONSTEXPR BufferViewCreateInfo(VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT
23104     : flags( flags_ ), buffer( buffer_ ), format( format_ ), offset( offset_ ), range( range_ )
23105     {}
23106 
23107     VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23108 
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23109     BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23110     {
23111       *this = rhs;
23112     }
23113 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23114 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23115     BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23116     {
23117       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const *>( &rhs );
23118       return *this;
23119     }
23120 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23121     BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
23122     {
23123       memcpy( static_cast<void *>( this ), &rhs, sizeof( BufferViewCreateInfo ) );
23124       return *this;
23125     }
23126 
setPNextVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23127     BufferViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23128     {
23129       pNext = pNext_;
23130       return *this;
23131     }
23132 
setFlagsVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23133     BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
23134     {
23135       flags = flags_;
23136       return *this;
23137     }
23138 
setBufferVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23139     BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
23140     {
23141       buffer = buffer_;
23142       return *this;
23143     }
23144 
setFormatVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23145     BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
23146     {
23147       format = format_;
23148       return *this;
23149     }
23150 
setOffsetVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23151     BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
23152     {
23153       offset = offset_;
23154       return *this;
23155     }
23156 
setRangeVULKAN_HPP_NAMESPACE::BufferViewCreateInfo23157     BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
23158     {
23159       range = range_;
23160       return *this;
23161     }
23162 
23163 
operator VkBufferViewCreateInfo const&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23164     operator VkBufferViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
23165     {
23166       return *reinterpret_cast<const VkBufferViewCreateInfo*>( this );
23167     }
23168 
operator VkBufferViewCreateInfo&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23169     operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
23170     {
23171       return *reinterpret_cast<VkBufferViewCreateInfo*>( this );
23172     }
23173 
23174 
23175 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23176     auto operator<=>( BufferViewCreateInfo const& ) const = default;
23177 #else
operator ==VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23178     bool operator==( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23179     {
23180       return ( sType == rhs.sType )
23181           && ( pNext == rhs.pNext )
23182           && ( flags == rhs.flags )
23183           && ( buffer == rhs.buffer )
23184           && ( format == rhs.format )
23185           && ( offset == rhs.offset )
23186           && ( range == rhs.range );
23187     }
23188 
operator !=VULKAN_HPP_NAMESPACE::BufferViewCreateInfo23189     bool operator!=( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
23190     {
23191       return !operator==( rhs );
23192     }
23193 #endif
23194 
23195 
23196 
23197   public:
23198     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo;
23199     const void* pNext = {};
23200     VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {};
23201     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
23202     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
23203     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
23204     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
23205 
23206   };
23207   static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" );
23208   static_assert( std::is_standard_layout<BufferViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
23209 
23210   template <>
23211   struct CppType<StructureType, StructureType::eBufferViewCreateInfo>
23212   {
23213     using Type = BufferViewCreateInfo;
23214   };
23215 
23216   struct CalibratedTimestampInfoEXT
23217   {
23218     static const bool allowDuplicate = false;
23219     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT;
23220 
23221 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23222     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT(VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice) VULKAN_HPP_NOEXCEPT
23223     : timeDomain( timeDomain_ )
23224     {}
23225 
23226     VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23227 
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23228     CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23229     {
23230       *this = rhs;
23231     }
23232 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23233 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23234     CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23235     {
23236       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const *>( &rhs );
23237       return *this;
23238     }
23239 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23240     CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
23241     {
23242       memcpy( static_cast<void *>( this ), &rhs, sizeof( CalibratedTimestampInfoEXT ) );
23243       return *this;
23244     }
23245 
setPNextVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23246     CalibratedTimestampInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
23247     {
23248       pNext = pNext_;
23249       return *this;
23250     }
23251 
setTimeDomainVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23252     CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT
23253     {
23254       timeDomain = timeDomain_;
23255       return *this;
23256     }
23257 
23258 
operator VkCalibratedTimestampInfoEXT const&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23259     operator VkCalibratedTimestampInfoEXT const&() const VULKAN_HPP_NOEXCEPT
23260     {
23261       return *reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( this );
23262     }
23263 
operator VkCalibratedTimestampInfoEXT&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23264     operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT
23265     {
23266       return *reinterpret_cast<VkCalibratedTimestampInfoEXT*>( this );
23267     }
23268 
23269 
23270 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23271     auto operator<=>( CalibratedTimestampInfoEXT const& ) const = default;
23272 #else
operator ==VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23273     bool operator==( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
23274     {
23275       return ( sType == rhs.sType )
23276           && ( pNext == rhs.pNext )
23277           && ( timeDomain == rhs.timeDomain );
23278     }
23279 
operator !=VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT23280     bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
23281     {
23282       return !operator==( rhs );
23283     }
23284 #endif
23285 
23286 
23287 
23288   public:
23289     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
23290     const void* pNext = {};
23291     VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice;
23292 
23293   };
23294   static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" );
23295   static_assert( std::is_standard_layout<CalibratedTimestampInfoEXT>::value, "struct wrapper is not a standard layout!" );
23296 
23297   template <>
23298   struct CppType<StructureType, StructureType::eCalibratedTimestampInfoEXT>
23299   {
23300     using Type = CalibratedTimestampInfoEXT;
23301   };
23302 
23303   struct CheckpointDataNV
23304   {
23305     static const bool allowDuplicate = false;
23306     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV;
23307 
23308 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV23309     VULKAN_HPP_CONSTEXPR CheckpointDataNV(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe, void* pCheckpointMarker_ = {}) VULKAN_HPP_NOEXCEPT
23310     : stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ )
23311     {}
23312 
23313     VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23314 
CheckpointDataNVVULKAN_HPP_NAMESPACE::CheckpointDataNV23315     CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
23316     {
23317       *this = rhs;
23318     }
23319 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23320 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV23321     CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
23322     {
23323       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointDataNV const *>( &rhs );
23324       return *this;
23325     }
23326 
operator =VULKAN_HPP_NAMESPACE::CheckpointDataNV23327     CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
23328     {
23329       memcpy( static_cast<void *>( this ), &rhs, sizeof( CheckpointDataNV ) );
23330       return *this;
23331     }
23332 
23333 
operator VkCheckpointDataNV const&VULKAN_HPP_NAMESPACE::CheckpointDataNV23334     operator VkCheckpointDataNV const&() const VULKAN_HPP_NOEXCEPT
23335     {
23336       return *reinterpret_cast<const VkCheckpointDataNV*>( this );
23337     }
23338 
operator VkCheckpointDataNV&VULKAN_HPP_NAMESPACE::CheckpointDataNV23339     operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
23340     {
23341       return *reinterpret_cast<VkCheckpointDataNV*>( this );
23342     }
23343 
23344 
23345 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23346     auto operator<=>( CheckpointDataNV const& ) const = default;
23347 #else
operator ==VULKAN_HPP_NAMESPACE::CheckpointDataNV23348     bool operator==( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23349     {
23350       return ( sType == rhs.sType )
23351           && ( pNext == rhs.pNext )
23352           && ( stage == rhs.stage )
23353           && ( pCheckpointMarker == rhs.pCheckpointMarker );
23354     }
23355 
operator !=VULKAN_HPP_NAMESPACE::CheckpointDataNV23356     bool operator!=( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23357     {
23358       return !operator==( rhs );
23359     }
23360 #endif
23361 
23362 
23363 
23364   public:
23365     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV;
23366     void* pNext = {};
23367     VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe;
23368     void* pCheckpointMarker = {};
23369 
23370   };
23371   static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" );
23372   static_assert( std::is_standard_layout<CheckpointDataNV>::value, "struct wrapper is not a standard layout!" );
23373 
23374   template <>
23375   struct CppType<StructureType, StructureType::eCheckpointDataNV>
23376   {
23377     using Type = CheckpointDataNV;
23378   };
23379 
23380   union ClearColorValue
23381   {
ClearColorValue(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)23382     ClearColorValue( VULKAN_HPP_NAMESPACE::ClearColorValue const& rhs ) VULKAN_HPP_NOEXCEPT
23383     {
23384       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
23385     }
23386 
ClearColorValue(const std::array<float,4> & float32_={} )23387     ClearColorValue( const std::array<float,4>& float32_ = {} )
23388       : float32( float32_ )
23389     {}
23390 
ClearColorValue(const std::array<int32_t,4> & int32_)23391     ClearColorValue( const std::array<int32_t,4>& int32_ )
23392       : int32( int32_ )
23393     {}
23394 
ClearColorValue(const std::array<uint32_t,4> & uint32_)23395     ClearColorValue( const std::array<uint32_t,4>& uint32_ )
23396       : uint32( uint32_ )
23397     {}
23398 
setFloat32(std::array<float,4> float32_)23399     ClearColorValue & setFloat32( std::array<float,4> float32_ ) VULKAN_HPP_NOEXCEPT
23400     {
23401       float32 = float32_;
23402       return *this;
23403     }
23404 
setInt32(std::array<int32_t,4> int32_)23405     ClearColorValue & setInt32( std::array<int32_t,4> int32_ ) VULKAN_HPP_NOEXCEPT
23406     {
23407       int32 = int32_;
23408       return *this;
23409     }
23410 
setUint32(std::array<uint32_t,4> uint32_)23411     ClearColorValue & setUint32( std::array<uint32_t,4> uint32_ ) VULKAN_HPP_NOEXCEPT
23412     {
23413       uint32 = uint32_;
23414       return *this;
23415     }
23416 
operator =(VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs)23417     VULKAN_HPP_NAMESPACE::ClearColorValue & operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT
23418     {
23419       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) );
23420       return *this;
23421     }
23422 
operator VkClearColorValue const&() const23423     operator VkClearColorValue const&() const
23424     {
23425       return *reinterpret_cast<const VkClearColorValue*>(this);
23426     }
23427 
operator VkClearColorValue&()23428     operator VkClearColorValue &()
23429     {
23430       return *reinterpret_cast<VkClearColorValue*>(this);
23431     }
23432 
23433     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> float32;
23434     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, 4> int32;
23435     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 4> uint32;
23436   };
23437 
23438   struct ClearDepthStencilValue
23439   {
23440 
23441 
23442 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23443     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue(float depth_ = {}, uint32_t stencil_ = {}) VULKAN_HPP_NOEXCEPT
23444     : depth( depth_ ), stencil( stencil_ )
23445     {}
23446 
23447     VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23448 
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23449     ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
23450     {
23451       *this = rhs;
23452     }
23453 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23454 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23455     ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
23456     {
23457       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const *>( &rhs );
23458       return *this;
23459     }
23460 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23461     ClearDepthStencilValue & operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
23462     {
23463       memcpy( static_cast<void *>( this ), &rhs, sizeof( ClearDepthStencilValue ) );
23464       return *this;
23465     }
23466 
setDepthVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23467     ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT
23468     {
23469       depth = depth_;
23470       return *this;
23471     }
23472 
setStencilVULKAN_HPP_NAMESPACE::ClearDepthStencilValue23473     ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT
23474     {
23475       stencil = stencil_;
23476       return *this;
23477     }
23478 
23479 
operator VkClearDepthStencilValue const&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23480     operator VkClearDepthStencilValue const&() const VULKAN_HPP_NOEXCEPT
23481     {
23482       return *reinterpret_cast<const VkClearDepthStencilValue*>( this );
23483     }
23484 
operator VkClearDepthStencilValue&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23485     operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
23486     {
23487       return *reinterpret_cast<VkClearDepthStencilValue*>( this );
23488     }
23489 
23490 
23491 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23492     auto operator<=>( ClearDepthStencilValue const& ) const = default;
23493 #else
operator ==VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23494     bool operator==( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
23495     {
23496       return ( depth == rhs.depth )
23497           && ( stencil == rhs.stencil );
23498     }
23499 
operator !=VULKAN_HPP_NAMESPACE::ClearDepthStencilValue23500     bool operator!=( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT
23501     {
23502       return !operator==( rhs );
23503     }
23504 #endif
23505 
23506 
23507 
23508   public:
23509     float depth = {};
23510     uint32_t stencil = {};
23511 
23512   };
23513   static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" );
23514   static_assert( std::is_standard_layout<ClearDepthStencilValue>::value, "struct wrapper is not a standard layout!" );
23515 
23516   union ClearValue
23517   {
ClearValue(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)23518     ClearValue( VULKAN_HPP_NAMESPACE::ClearValue const& rhs ) VULKAN_HPP_NOEXCEPT
23519     {
23520       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
23521     }
23522 
ClearValue(VULKAN_HPP_NAMESPACE::ClearColorValue color_={} )23523     ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} )
23524       : color( color_ )
23525     {}
23526 
ClearValue(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_)23527     ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ )
23528       : depthStencil( depthStencil_ )
23529     {}
23530 
setColor(VULKAN_HPP_NAMESPACE::ClearColorValue const & color_)23531     ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT
23532     {
23533       color = color_;
23534       return *this;
23535     }
23536 
setDepthStencil(VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_)23537     ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT
23538     {
23539       depthStencil = depthStencil_;
23540       return *this;
23541     }
23542 
operator =(VULKAN_HPP_NAMESPACE::ClearValue const & rhs)23543     VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT
23544     {
23545       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) );
23546       return *this;
23547     }
23548 
operator VkClearValue const&() const23549     operator VkClearValue const&() const
23550     {
23551       return *reinterpret_cast<const VkClearValue*>(this);
23552     }
23553 
operator VkClearValue&()23554     operator VkClearValue &()
23555     {
23556       return *reinterpret_cast<VkClearValue*>(this);
23557     }
23558 
23559 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
23560     VULKAN_HPP_NAMESPACE::ClearColorValue color;
23561     VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil;
23562 #else
23563     VkClearColorValue color;
23564     VkClearDepthStencilValue depthStencil;
23565 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
23566   };
23567 
23568   struct ClearAttachment
23569   {
23570 
23571 
23572 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23573     ClearAttachment(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t colorAttachment_ = {}, VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {}) VULKAN_HPP_NOEXCEPT
23574     : aspectMask( aspectMask_ ), colorAttachment( colorAttachment_ ), clearValue( clearValue_ )
23575     {}
23576 
23577     ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23578 
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23579     ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
23580     {
23581       *this = rhs;
23582     }
23583 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23584 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment23585     ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
23586     {
23587       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearAttachment const *>( &rhs );
23588       return *this;
23589     }
23590 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment23591     ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
23592     {
23593       memcpy( static_cast<void *>( this ), &rhs, sizeof( ClearAttachment ) );
23594       return *this;
23595     }
23596 
setAspectMaskVULKAN_HPP_NAMESPACE::ClearAttachment23597     ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
23598     {
23599       aspectMask = aspectMask_;
23600       return *this;
23601     }
23602 
setColorAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23603     ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT
23604     {
23605       colorAttachment = colorAttachment_;
23606       return *this;
23607     }
23608 
setClearValueVULKAN_HPP_NAMESPACE::ClearAttachment23609     ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
23610     {
23611       clearValue = clearValue_;
23612       return *this;
23613     }
23614 
23615 
operator VkClearAttachment const&VULKAN_HPP_NAMESPACE::ClearAttachment23616     operator VkClearAttachment const&() const VULKAN_HPP_NOEXCEPT
23617     {
23618       return *reinterpret_cast<const VkClearAttachment*>( this );
23619     }
23620 
operator VkClearAttachment&VULKAN_HPP_NAMESPACE::ClearAttachment23621     operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
23622     {
23623       return *reinterpret_cast<VkClearAttachment*>( this );
23624     }
23625 
23626 
23627 
23628 
23629   public:
23630     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
23631     uint32_t colorAttachment = {};
23632     VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
23633 
23634   };
23635   static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" );
23636   static_assert( std::is_standard_layout<ClearAttachment>::value, "struct wrapper is not a standard layout!" );
23637 
23638   struct ClearRect
23639   {
23640 
23641 
23642 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ClearRectVULKAN_HPP_NAMESPACE::ClearRect23643     VULKAN_HPP_CONSTEXPR ClearRect(VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
23644     : rect( rect_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
23645     {}
23646 
23647     VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23648 
ClearRectVULKAN_HPP_NAMESPACE::ClearRect23649     ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
23650     {
23651       *this = rhs;
23652     }
23653 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23654 
operator =VULKAN_HPP_NAMESPACE::ClearRect23655     ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
23656     {
23657       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearRect const *>( &rhs );
23658       return *this;
23659     }
23660 
operator =VULKAN_HPP_NAMESPACE::ClearRect23661     ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
23662     {
23663       memcpy( static_cast<void *>( this ), &rhs, sizeof( ClearRect ) );
23664       return *this;
23665     }
23666 
setRectVULKAN_HPP_NAMESPACE::ClearRect23667     ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT
23668     {
23669       rect = rect_;
23670       return *this;
23671     }
23672 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ClearRect23673     ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
23674     {
23675       baseArrayLayer = baseArrayLayer_;
23676       return *this;
23677     }
23678 
setLayerCountVULKAN_HPP_NAMESPACE::ClearRect23679     ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
23680     {
23681       layerCount = layerCount_;
23682       return *this;
23683     }
23684 
23685 
operator VkClearRect const&VULKAN_HPP_NAMESPACE::ClearRect23686     operator VkClearRect const&() const VULKAN_HPP_NOEXCEPT
23687     {
23688       return *reinterpret_cast<const VkClearRect*>( this );
23689     }
23690 
operator VkClearRect&VULKAN_HPP_NAMESPACE::ClearRect23691     operator VkClearRect &() VULKAN_HPP_NOEXCEPT
23692     {
23693       return *reinterpret_cast<VkClearRect*>( this );
23694     }
23695 
23696 
23697 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23698     auto operator<=>( ClearRect const& ) const = default;
23699 #else
operator ==VULKAN_HPP_NAMESPACE::ClearRect23700     bool operator==( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
23701     {
23702       return ( rect == rhs.rect )
23703           && ( baseArrayLayer == rhs.baseArrayLayer )
23704           && ( layerCount == rhs.layerCount );
23705     }
23706 
operator !=VULKAN_HPP_NAMESPACE::ClearRect23707     bool operator!=( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT
23708     {
23709       return !operator==( rhs );
23710     }
23711 #endif
23712 
23713 
23714 
23715   public:
23716     VULKAN_HPP_NAMESPACE::Rect2D rect = {};
23717     uint32_t baseArrayLayer = {};
23718     uint32_t layerCount = {};
23719 
23720   };
23721   static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" );
23722   static_assert( std::is_standard_layout<ClearRect>::value, "struct wrapper is not a standard layout!" );
23723 
23724   struct CoarseSampleLocationNV
23725   {
23726 
23727 
23728 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23729     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV(uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {}) VULKAN_HPP_NOEXCEPT
23730     : pixelX( pixelX_ ), pixelY( pixelY_ ), sample( sample_ )
23731     {}
23732 
23733     VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23734 
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23735     CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
23736     {
23737       *this = rhs;
23738     }
23739 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23740 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23741     CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
23742     {
23743       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const *>( &rhs );
23744       return *this;
23745     }
23746 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23747     CoarseSampleLocationNV & operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
23748     {
23749       memcpy( static_cast<void *>( this ), &rhs, sizeof( CoarseSampleLocationNV ) );
23750       return *this;
23751     }
23752 
setPixelXVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23753     CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT
23754     {
23755       pixelX = pixelX_;
23756       return *this;
23757     }
23758 
setPixelYVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23759     CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT
23760     {
23761       pixelY = pixelY_;
23762       return *this;
23763     }
23764 
setSampleVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23765     CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT
23766     {
23767       sample = sample_;
23768       return *this;
23769     }
23770 
23771 
operator VkCoarseSampleLocationNV const&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23772     operator VkCoarseSampleLocationNV const&() const VULKAN_HPP_NOEXCEPT
23773     {
23774       return *reinterpret_cast<const VkCoarseSampleLocationNV*>( this );
23775     }
23776 
operator VkCoarseSampleLocationNV&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23777     operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
23778     {
23779       return *reinterpret_cast<VkCoarseSampleLocationNV*>( this );
23780     }
23781 
23782 
23783 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23784     auto operator<=>( CoarseSampleLocationNV const& ) const = default;
23785 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23786     bool operator==( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23787     {
23788       return ( pixelX == rhs.pixelX )
23789           && ( pixelY == rhs.pixelY )
23790           && ( sample == rhs.sample );
23791     }
23792 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23793     bool operator!=( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23794     {
23795       return !operator==( rhs );
23796     }
23797 #endif
23798 
23799 
23800 
23801   public:
23802     uint32_t pixelX = {};
23803     uint32_t pixelY = {};
23804     uint32_t sample = {};
23805 
23806   };
23807   static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" );
23808   static_assert( std::is_standard_layout<CoarseSampleLocationNV>::value, "struct wrapper is not a standard layout!" );
23809 
23810   struct CoarseSampleOrderCustomNV
23811   {
23812 
23813 
23814 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23815     VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV(VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations, uint32_t sampleCount_ = {}, uint32_t sampleLocationCount_ = {}, const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT
23816     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( sampleLocationCount_ ), pSampleLocations( pSampleLocations_ )
23817     {}
23818 
23819     VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
23820 
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23821     CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
23822     {
23823       *this = rhs;
23824     }
23825 
23826 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23827     CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_, uint32_t sampleCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ )
23828     : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( static_cast<uint32_t>( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() )
23829     {}
23830 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
23831 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
23832 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23833     CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
23834     {
23835       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const *>( &rhs );
23836       return *this;
23837     }
23838 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23839     CoarseSampleOrderCustomNV & operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
23840     {
23841       memcpy( static_cast<void *>( this ), &rhs, sizeof( CoarseSampleOrderCustomNV ) );
23842       return *this;
23843     }
23844 
setShadingRateVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23845     CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
23846     {
23847       shadingRate = shadingRate_;
23848       return *this;
23849     }
23850 
setSampleCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23851     CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT
23852     {
23853       sampleCount = sampleCount_;
23854       return *this;
23855     }
23856 
setSampleLocationCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23857     CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT
23858     {
23859       sampleLocationCount = sampleLocationCount_;
23860       return *this;
23861     }
23862 
setPSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23863     CoarseSampleOrderCustomNV & setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
23864     {
23865       pSampleLocations = pSampleLocations_;
23866       return *this;
23867     }
23868 
23869 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23870     CoarseSampleOrderCustomNV & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
23871     {
23872       sampleLocationCount = static_cast<uint32_t>( sampleLocations_.size() );
23873       pSampleLocations = sampleLocations_.data();
23874       return *this;
23875     }
23876 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
23877 
23878 
operator VkCoarseSampleOrderCustomNV const&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23879     operator VkCoarseSampleOrderCustomNV const&() const VULKAN_HPP_NOEXCEPT
23880     {
23881       return *reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( this );
23882     }
23883 
operator VkCoarseSampleOrderCustomNV&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23884     operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
23885     {
23886       return *reinterpret_cast<VkCoarseSampleOrderCustomNV*>( this );
23887     }
23888 
23889 
23890 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23891     auto operator<=>( CoarseSampleOrderCustomNV const& ) const = default;
23892 #else
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23893     bool operator==( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23894     {
23895       return ( shadingRate == rhs.shadingRate )
23896           && ( sampleCount == rhs.sampleCount )
23897           && ( sampleLocationCount == rhs.sampleLocationCount )
23898           && ( pSampleLocations == rhs.pSampleLocations );
23899     }
23900 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23901     bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT
23902     {
23903       return !operator==( rhs );
23904     }
23905 #endif
23906 
23907 
23908 
23909   public:
23910     VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations;
23911     uint32_t sampleCount = {};
23912     uint32_t sampleLocationCount = {};
23913     const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations = {};
23914 
23915   };
23916   static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" );
23917   static_assert( std::is_standard_layout<CoarseSampleOrderCustomNV>::value, "struct wrapper is not a standard layout!" );
23918 
23919   class CommandPool
23920   {
23921   public:
23922     using CType = VkCommandPool;
23923 
23924     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool;
23925     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
23926 
23927   public:
CommandPool()23928     VULKAN_HPP_CONSTEXPR CommandPool() VULKAN_HPP_NOEXCEPT
23929       : m_commandPool(VK_NULL_HANDLE)
23930     {}
23931 
CommandPool(std::nullptr_t)23932     VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
23933       : m_commandPool(VK_NULL_HANDLE)
23934     {}
23935 
CommandPool(VkCommandPool commandPool)23936     VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT
23937       : m_commandPool( commandPool )
23938     {}
23939 
23940 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandPool commandPool)23941     CommandPool & operator=(VkCommandPool commandPool) VULKAN_HPP_NOEXCEPT
23942     {
23943       m_commandPool = commandPool;
23944       return *this;
23945     }
23946 #endif
23947 
operator =(std::nullptr_t)23948     CommandPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
23949     {
23950       m_commandPool = VK_NULL_HANDLE;
23951       return *this;
23952     }
23953 
23954 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
23955     auto operator<=>( CommandPool const& ) const = default;
23956 #else
operator ==(CommandPool const & rhs) const23957     bool operator==( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
23958     {
23959       return m_commandPool == rhs.m_commandPool;
23960     }
23961 
operator !=(CommandPool const & rhs) const23962     bool operator!=(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
23963     {
23964       return m_commandPool != rhs.m_commandPool;
23965     }
23966 
operator <(CommandPool const & rhs) const23967     bool operator<(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT
23968     {
23969       return m_commandPool < rhs.m_commandPool;
23970     }
23971 #endif
23972 
operator VkCommandPool() const23973     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const VULKAN_HPP_NOEXCEPT
23974     {
23975       return m_commandPool;
23976     }
23977 
operator bool() const23978     explicit operator bool() const VULKAN_HPP_NOEXCEPT
23979     {
23980       return m_commandPool != VK_NULL_HANDLE;
23981     }
23982 
operator !() const23983     bool operator!() const VULKAN_HPP_NOEXCEPT
23984     {
23985       return m_commandPool == VK_NULL_HANDLE;
23986     }
23987 
23988   private:
23989     VkCommandPool m_commandPool;
23990   };
23991   static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" );
23992 
23993   template <>
23994   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandPool>
23995   {
23996     using type = VULKAN_HPP_NAMESPACE::CommandPool;
23997   };
23998 
23999   template <>
24000   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool>
24001   {
24002     using Type = VULKAN_HPP_NAMESPACE::CommandPool;
24003   };
24004 
24005 
24006   template <>
24007   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool>
24008   {
24009     using Type = VULKAN_HPP_NAMESPACE::CommandPool;
24010   };
24011 
24012 
24013   template <>
24014   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CommandPool>
24015   {
24016     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24017   };
24018 
24019   struct CommandBufferAllocateInfo
24020   {
24021     static const bool allowDuplicate = false;
24022     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo;
24023 
24024 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24025     VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo(VULKAN_HPP_NAMESPACE::CommandPool commandPool_ = {}, VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary, uint32_t commandBufferCount_ = {}) VULKAN_HPP_NOEXCEPT
24026     : commandPool( commandPool_ ), level( level_ ), commandBufferCount( commandBufferCount_ )
24027     {}
24028 
24029     VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24030 
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24031     CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24032     {
24033       *this = rhs;
24034     }
24035 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24036 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24037     CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24038     {
24039       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const *>( &rhs );
24040       return *this;
24041     }
24042 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24043     CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24044     {
24045       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferAllocateInfo ) );
24046       return *this;
24047     }
24048 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24049     CommandBufferAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24050     {
24051       pNext = pNext_;
24052       return *this;
24053     }
24054 
setCommandPoolVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24055     CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT
24056     {
24057       commandPool = commandPool_;
24058       return *this;
24059     }
24060 
setLevelVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24061     CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT
24062     {
24063       level = level_;
24064       return *this;
24065     }
24066 
setCommandBufferCountVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24067     CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
24068     {
24069       commandBufferCount = commandBufferCount_;
24070       return *this;
24071     }
24072 
24073 
operator VkCommandBufferAllocateInfo const&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24074     operator VkCommandBufferAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
24075     {
24076       return *reinterpret_cast<const VkCommandBufferAllocateInfo*>( this );
24077     }
24078 
operator VkCommandBufferAllocateInfo&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24079     operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
24080     {
24081       return *reinterpret_cast<VkCommandBufferAllocateInfo*>( this );
24082     }
24083 
24084 
24085 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24086     auto operator<=>( CommandBufferAllocateInfo const& ) const = default;
24087 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24088     bool operator==( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24089     {
24090       return ( sType == rhs.sType )
24091           && ( pNext == rhs.pNext )
24092           && ( commandPool == rhs.commandPool )
24093           && ( level == rhs.level )
24094           && ( commandBufferCount == rhs.commandBufferCount );
24095     }
24096 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo24097     bool operator!=( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24098     {
24099       return !operator==( rhs );
24100     }
24101 #endif
24102 
24103 
24104 
24105   public:
24106     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo;
24107     const void* pNext = {};
24108     VULKAN_HPP_NAMESPACE::CommandPool commandPool = {};
24109     VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary;
24110     uint32_t commandBufferCount = {};
24111 
24112   };
24113   static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" );
24114   static_assert( std::is_standard_layout<CommandBufferAllocateInfo>::value, "struct wrapper is not a standard layout!" );
24115 
24116   template <>
24117   struct CppType<StructureType, StructureType::eCommandBufferAllocateInfo>
24118   {
24119     using Type = CommandBufferAllocateInfo;
24120   };
24121 
24122   class RenderPass
24123   {
24124   public:
24125     using CType = VkRenderPass;
24126 
24127     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass;
24128     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
24129 
24130   public:
RenderPass()24131     VULKAN_HPP_CONSTEXPR RenderPass() VULKAN_HPP_NOEXCEPT
24132       : m_renderPass(VK_NULL_HANDLE)
24133     {}
24134 
RenderPass(std::nullptr_t)24135     VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24136       : m_renderPass(VK_NULL_HANDLE)
24137     {}
24138 
RenderPass(VkRenderPass renderPass)24139     VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT
24140       : m_renderPass( renderPass )
24141     {}
24142 
24143 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkRenderPass renderPass)24144     RenderPass & operator=(VkRenderPass renderPass) VULKAN_HPP_NOEXCEPT
24145     {
24146       m_renderPass = renderPass;
24147       return *this;
24148     }
24149 #endif
24150 
operator =(std::nullptr_t)24151     RenderPass & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24152     {
24153       m_renderPass = VK_NULL_HANDLE;
24154       return *this;
24155     }
24156 
24157 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24158     auto operator<=>( RenderPass const& ) const = default;
24159 #else
operator ==(RenderPass const & rhs) const24160     bool operator==( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
24161     {
24162       return m_renderPass == rhs.m_renderPass;
24163     }
24164 
operator !=(RenderPass const & rhs) const24165     bool operator!=(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
24166     {
24167       return m_renderPass != rhs.m_renderPass;
24168     }
24169 
operator <(RenderPass const & rhs) const24170     bool operator<(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT
24171     {
24172       return m_renderPass < rhs.m_renderPass;
24173     }
24174 #endif
24175 
operator VkRenderPass() const24176     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT
24177     {
24178       return m_renderPass;
24179     }
24180 
operator bool() const24181     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24182     {
24183       return m_renderPass != VK_NULL_HANDLE;
24184     }
24185 
operator !() const24186     bool operator!() const VULKAN_HPP_NOEXCEPT
24187     {
24188       return m_renderPass == VK_NULL_HANDLE;
24189     }
24190 
24191   private:
24192     VkRenderPass m_renderPass;
24193   };
24194   static_assert( sizeof( VULKAN_HPP_NAMESPACE::RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" );
24195 
24196   template <>
24197   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eRenderPass>
24198   {
24199     using type = VULKAN_HPP_NAMESPACE::RenderPass;
24200   };
24201 
24202   template <>
24203   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass>
24204   {
24205     using Type = VULKAN_HPP_NAMESPACE::RenderPass;
24206   };
24207 
24208 
24209   template <>
24210   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass>
24211   {
24212     using Type = VULKAN_HPP_NAMESPACE::RenderPass;
24213   };
24214 
24215 
24216   template <>
24217   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::RenderPass>
24218   {
24219     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24220   };
24221 
24222   class Framebuffer
24223   {
24224   public:
24225     using CType = VkFramebuffer;
24226 
24227     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer;
24228     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
24229 
24230   public:
Framebuffer()24231     VULKAN_HPP_CONSTEXPR Framebuffer() VULKAN_HPP_NOEXCEPT
24232       : m_framebuffer(VK_NULL_HANDLE)
24233     {}
24234 
Framebuffer(std::nullptr_t)24235     VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24236       : m_framebuffer(VK_NULL_HANDLE)
24237     {}
24238 
Framebuffer(VkFramebuffer framebuffer)24239     VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT
24240       : m_framebuffer( framebuffer )
24241     {}
24242 
24243 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFramebuffer framebuffer)24244     Framebuffer & operator=(VkFramebuffer framebuffer) VULKAN_HPP_NOEXCEPT
24245     {
24246       m_framebuffer = framebuffer;
24247       return *this;
24248     }
24249 #endif
24250 
operator =(std::nullptr_t)24251     Framebuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24252     {
24253       m_framebuffer = VK_NULL_HANDLE;
24254       return *this;
24255     }
24256 
24257 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24258     auto operator<=>( Framebuffer const& ) const = default;
24259 #else
operator ==(Framebuffer const & rhs) const24260     bool operator==( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
24261     {
24262       return m_framebuffer == rhs.m_framebuffer;
24263     }
24264 
operator !=(Framebuffer const & rhs) const24265     bool operator!=(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
24266     {
24267       return m_framebuffer != rhs.m_framebuffer;
24268     }
24269 
operator <(Framebuffer const & rhs) const24270     bool operator<(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
24271     {
24272       return m_framebuffer < rhs.m_framebuffer;
24273     }
24274 #endif
24275 
operator VkFramebuffer() const24276     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const VULKAN_HPP_NOEXCEPT
24277     {
24278       return m_framebuffer;
24279     }
24280 
operator bool() const24281     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24282     {
24283       return m_framebuffer != VK_NULL_HANDLE;
24284     }
24285 
operator !() const24286     bool operator!() const VULKAN_HPP_NOEXCEPT
24287     {
24288       return m_framebuffer == VK_NULL_HANDLE;
24289     }
24290 
24291   private:
24292     VkFramebuffer m_framebuffer;
24293   };
24294   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" );
24295 
24296   template <>
24297   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eFramebuffer>
24298   {
24299     using type = VULKAN_HPP_NAMESPACE::Framebuffer;
24300   };
24301 
24302   template <>
24303   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer>
24304   {
24305     using Type = VULKAN_HPP_NAMESPACE::Framebuffer;
24306   };
24307 
24308 
24309   template <>
24310   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer>
24311   {
24312     using Type = VULKAN_HPP_NAMESPACE::Framebuffer;
24313   };
24314 
24315 
24316   template <>
24317   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Framebuffer>
24318   {
24319     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24320   };
24321 
24322   struct CommandBufferInheritanceInfo
24323   {
24324     static const bool allowDuplicate = false;
24325     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo;
24326 
24327 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24328     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo(VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ = {}, VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {}, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {}) VULKAN_HPP_NOEXCEPT
24329     : renderPass( renderPass_ ), subpass( subpass_ ), framebuffer( framebuffer_ ), occlusionQueryEnable( occlusionQueryEnable_ ), queryFlags( queryFlags_ ), pipelineStatistics( pipelineStatistics_ )
24330     {}
24331 
24332     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24333 
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24334     CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24335     {
24336       *this = rhs;
24337     }
24338 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24339 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24340     CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24341     {
24342       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const *>( &rhs );
24343       return *this;
24344     }
24345 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24346     CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24347     {
24348       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferInheritanceInfo ) );
24349       return *this;
24350     }
24351 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24352     CommandBufferInheritanceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24353     {
24354       pNext = pNext_;
24355       return *this;
24356     }
24357 
setRenderPassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24358     CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
24359     {
24360       renderPass = renderPass_;
24361       return *this;
24362     }
24363 
setSubpassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24364     CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
24365     {
24366       subpass = subpass_;
24367       return *this;
24368     }
24369 
setFramebufferVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24370     CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
24371     {
24372       framebuffer = framebuffer_;
24373       return *this;
24374     }
24375 
setOcclusionQueryEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24376     CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT
24377     {
24378       occlusionQueryEnable = occlusionQueryEnable_;
24379       return *this;
24380     }
24381 
setQueryFlagsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24382     CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT
24383     {
24384       queryFlags = queryFlags_;
24385       return *this;
24386     }
24387 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24388     CommandBufferInheritanceInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
24389     {
24390       pipelineStatistics = pipelineStatistics_;
24391       return *this;
24392     }
24393 
24394 
operator VkCommandBufferInheritanceInfo const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24395     operator VkCommandBufferInheritanceInfo const&() const VULKAN_HPP_NOEXCEPT
24396     {
24397       return *reinterpret_cast<const VkCommandBufferInheritanceInfo*>( this );
24398     }
24399 
operator VkCommandBufferInheritanceInfo&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24400     operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
24401     {
24402       return *reinterpret_cast<VkCommandBufferInheritanceInfo*>( this );
24403     }
24404 
24405 
24406 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24407     auto operator<=>( CommandBufferInheritanceInfo const& ) const = default;
24408 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24409     bool operator==( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24410     {
24411       return ( sType == rhs.sType )
24412           && ( pNext == rhs.pNext )
24413           && ( renderPass == rhs.renderPass )
24414           && ( subpass == rhs.subpass )
24415           && ( framebuffer == rhs.framebuffer )
24416           && ( occlusionQueryEnable == rhs.occlusionQueryEnable )
24417           && ( queryFlags == rhs.queryFlags )
24418           && ( pipelineStatistics == rhs.pipelineStatistics );
24419     }
24420 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo24421     bool operator!=( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24422     {
24423       return !operator==( rhs );
24424     }
24425 #endif
24426 
24427 
24428 
24429   public:
24430     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo;
24431     const void* pNext = {};
24432     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
24433     uint32_t subpass = {};
24434     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
24435     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {};
24436     VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {};
24437     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
24438 
24439   };
24440   static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" );
24441   static_assert( std::is_standard_layout<CommandBufferInheritanceInfo>::value, "struct wrapper is not a standard layout!" );
24442 
24443   template <>
24444   struct CppType<StructureType, StructureType::eCommandBufferInheritanceInfo>
24445   {
24446     using Type = CommandBufferInheritanceInfo;
24447   };
24448 
24449   struct CommandBufferBeginInfo
24450   {
24451     static const bool allowDuplicate = false;
24452     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo;
24453 
24454 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24455     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo(VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ = {}) VULKAN_HPP_NOEXCEPT
24456     : flags( flags_ ), pInheritanceInfo( pInheritanceInfo_ )
24457     {}
24458 
24459     VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24460 
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24461     CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24462     {
24463       *this = rhs;
24464     }
24465 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24466 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24467     CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24468     {
24469       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const *>( &rhs );
24470       return *this;
24471     }
24472 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24473     CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24474     {
24475       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferBeginInfo ) );
24476       return *this;
24477     }
24478 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24479     CommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24480     {
24481       pNext = pNext_;
24482       return *this;
24483     }
24484 
setFlagsVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24485     CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT
24486     {
24487       flags = flags_;
24488       return *this;
24489     }
24490 
setPInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24491     CommandBufferBeginInfo & setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
24492     {
24493       pInheritanceInfo = pInheritanceInfo_;
24494       return *this;
24495     }
24496 
24497 
operator VkCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24498     operator VkCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
24499     {
24500       return *reinterpret_cast<const VkCommandBufferBeginInfo*>( this );
24501     }
24502 
operator VkCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24503     operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
24504     {
24505       return *reinterpret_cast<VkCommandBufferBeginInfo*>( this );
24506     }
24507 
24508 
24509 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24510     auto operator<=>( CommandBufferBeginInfo const& ) const = default;
24511 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24512     bool operator==( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24513     {
24514       return ( sType == rhs.sType )
24515           && ( pNext == rhs.pNext )
24516           && ( flags == rhs.flags )
24517           && ( pInheritanceInfo == rhs.pInheritanceInfo );
24518     }
24519 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24520     bool operator!=( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24521     {
24522       return !operator==( rhs );
24523     }
24524 #endif
24525 
24526 
24527 
24528   public:
24529     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo;
24530     const void* pNext = {};
24531     VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {};
24532     const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo = {};
24533 
24534   };
24535   static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" );
24536   static_assert( std::is_standard_layout<CommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
24537 
24538   template <>
24539   struct CppType<StructureType, StructureType::eCommandBufferBeginInfo>
24540   {
24541     using Type = CommandBufferBeginInfo;
24542   };
24543 
24544   struct CommandBufferInheritanceConditionalRenderingInfoEXT
24545   {
24546     static const bool allowDuplicate = false;
24547     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
24548 
24549 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24550     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {}) VULKAN_HPP_NOEXCEPT
24551     : conditionalRenderingEnable( conditionalRenderingEnable_ )
24552     {}
24553 
24554     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24555 
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24556     CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24557     {
24558       *this = rhs;
24559     }
24560 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24561 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24562     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24563     {
24564       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs );
24565       return *this;
24566     }
24567 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24568     CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
24569     {
24570       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) );
24571       return *this;
24572     }
24573 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24574     CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24575     {
24576       pNext = pNext_;
24577       return *this;
24578     }
24579 
setConditionalRenderingEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24580     CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
24581     {
24582       conditionalRenderingEnable = conditionalRenderingEnable_;
24583       return *this;
24584     }
24585 
24586 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24587     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const VULKAN_HPP_NOEXCEPT
24588     {
24589       return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
24590     }
24591 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24592     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
24593     {
24594       return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
24595     }
24596 
24597 
24598 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24599     auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const& ) const = default;
24600 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24601     bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
24602     {
24603       return ( sType == rhs.sType )
24604           && ( pNext == rhs.pNext )
24605           && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
24606     }
24607 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24608     bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
24609     {
24610       return !operator==( rhs );
24611     }
24612 #endif
24613 
24614 
24615 
24616   public:
24617     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
24618     const void* pNext = {};
24619     VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {};
24620 
24621   };
24622   static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" );
24623   static_assert( std::is_standard_layout<CommandBufferInheritanceConditionalRenderingInfoEXT>::value, "struct wrapper is not a standard layout!" );
24624 
24625   template <>
24626   struct CppType<StructureType, StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT>
24627   {
24628     using Type = CommandBufferInheritanceConditionalRenderingInfoEXT;
24629   };
24630 
24631   struct CommandBufferInheritanceRenderPassTransformInfoQCOM
24632   {
24633     static const bool allowDuplicate = false;
24634     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
24635 
24636 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24637     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}) VULKAN_HPP_NOEXCEPT
24638     : transform( transform_ ), renderArea( renderArea_ )
24639     {}
24640 
24641     VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24642 
CommandBufferInheritanceRenderPassTransformInfoQCOMVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24643     CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
24644     {
24645       *this = rhs;
24646     }
24647 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24648 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24649     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
24650     {
24651       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs );
24652       return *this;
24653     }
24654 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24655     CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
24656     {
24657       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) );
24658       return *this;
24659     }
24660 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24661     CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
24662     {
24663       pNext = pNext_;
24664       return *this;
24665     }
24666 
setTransformVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24667     CommandBufferInheritanceRenderPassTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
24668     {
24669       transform = transform_;
24670       return *this;
24671     }
24672 
setRenderAreaVULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24673     CommandBufferInheritanceRenderPassTransformInfoQCOM & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
24674     {
24675       renderArea = renderArea_;
24676       return *this;
24677     }
24678 
24679 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24680     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
24681     {
24682       return *reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
24683     }
24684 
operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24685     operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
24686     {
24687       return *reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>( this );
24688     }
24689 
24690 
24691 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24692     auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const& ) const = default;
24693 #else
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24694     bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
24695     {
24696       return ( sType == rhs.sType )
24697           && ( pNext == rhs.pNext )
24698           && ( transform == rhs.transform )
24699           && ( renderArea == rhs.renderArea );
24700     }
24701 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM24702     bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
24703     {
24704       return !operator==( rhs );
24705     }
24706 #endif
24707 
24708 
24709 
24710   public:
24711     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
24712     void* pNext = {};
24713     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
24714     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
24715 
24716   };
24717   static_assert( sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) == sizeof( VkCommandBufferInheritanceRenderPassTransformInfoQCOM ), "struct and wrapper have different size!" );
24718   static_assert( std::is_standard_layout<CommandBufferInheritanceRenderPassTransformInfoQCOM>::value, "struct wrapper is not a standard layout!" );
24719 
24720   template <>
24721   struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM>
24722   {
24723     using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM;
24724   };
24725 
24726   struct CommandPoolCreateInfo
24727   {
24728     static const bool allowDuplicate = false;
24729     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo;
24730 
24731 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24732     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo(VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}) VULKAN_HPP_NOEXCEPT
24733     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ )
24734     {}
24735 
24736     VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24737 
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24738     CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24739     {
24740       *this = rhs;
24741     }
24742 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24743 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24744     CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24745     {
24746       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const *>( &rhs );
24747       return *this;
24748     }
24749 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24750     CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
24751     {
24752       memcpy( static_cast<void *>( this ), &rhs, sizeof( CommandPoolCreateInfo ) );
24753       return *this;
24754     }
24755 
setPNextVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24756     CommandPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
24757     {
24758       pNext = pNext_;
24759       return *this;
24760     }
24761 
setFlagsVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24762     CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
24763     {
24764       flags = flags_;
24765       return *this;
24766     }
24767 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24768     CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
24769     {
24770       queueFamilyIndex = queueFamilyIndex_;
24771       return *this;
24772     }
24773 
24774 
operator VkCommandPoolCreateInfo const&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24775     operator VkCommandPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
24776     {
24777       return *reinterpret_cast<const VkCommandPoolCreateInfo*>( this );
24778     }
24779 
operator VkCommandPoolCreateInfo&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24780     operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
24781     {
24782       return *reinterpret_cast<VkCommandPoolCreateInfo*>( this );
24783     }
24784 
24785 
24786 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24787     auto operator<=>( CommandPoolCreateInfo const& ) const = default;
24788 #else
operator ==VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24789     bool operator==( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24790     {
24791       return ( sType == rhs.sType )
24792           && ( pNext == rhs.pNext )
24793           && ( flags == rhs.flags )
24794           && ( queueFamilyIndex == rhs.queueFamilyIndex );
24795     }
24796 
operator !=VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24797     bool operator!=( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
24798     {
24799       return !operator==( rhs );
24800     }
24801 #endif
24802 
24803 
24804 
24805   public:
24806     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo;
24807     const void* pNext = {};
24808     VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {};
24809     uint32_t queueFamilyIndex = {};
24810 
24811   };
24812   static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" );
24813   static_assert( std::is_standard_layout<CommandPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
24814 
24815   template <>
24816   struct CppType<StructureType, StructureType::eCommandPoolCreateInfo>
24817   {
24818     using Type = CommandPoolCreateInfo;
24819   };
24820 
24821   class ShaderModule
24822   {
24823   public:
24824     using CType = VkShaderModule;
24825 
24826     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule;
24827     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
24828 
24829   public:
ShaderModule()24830     VULKAN_HPP_CONSTEXPR ShaderModule() VULKAN_HPP_NOEXCEPT
24831       : m_shaderModule(VK_NULL_HANDLE)
24832     {}
24833 
ShaderModule(std::nullptr_t)24834     VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24835       : m_shaderModule(VK_NULL_HANDLE)
24836     {}
24837 
ShaderModule(VkShaderModule shaderModule)24838     VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT
24839       : m_shaderModule( shaderModule )
24840     {}
24841 
24842 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkShaderModule shaderModule)24843     ShaderModule & operator=(VkShaderModule shaderModule) VULKAN_HPP_NOEXCEPT
24844     {
24845       m_shaderModule = shaderModule;
24846       return *this;
24847     }
24848 #endif
24849 
operator =(std::nullptr_t)24850     ShaderModule & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
24851     {
24852       m_shaderModule = VK_NULL_HANDLE;
24853       return *this;
24854     }
24855 
24856 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24857     auto operator<=>( ShaderModule const& ) const = default;
24858 #else
operator ==(ShaderModule const & rhs) const24859     bool operator==( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
24860     {
24861       return m_shaderModule == rhs.m_shaderModule;
24862     }
24863 
operator !=(ShaderModule const & rhs) const24864     bool operator!=(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
24865     {
24866       return m_shaderModule != rhs.m_shaderModule;
24867     }
24868 
operator <(ShaderModule const & rhs) const24869     bool operator<(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT
24870     {
24871       return m_shaderModule < rhs.m_shaderModule;
24872     }
24873 #endif
24874 
operator VkShaderModule() const24875     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const VULKAN_HPP_NOEXCEPT
24876     {
24877       return m_shaderModule;
24878     }
24879 
operator bool() const24880     explicit operator bool() const VULKAN_HPP_NOEXCEPT
24881     {
24882       return m_shaderModule != VK_NULL_HANDLE;
24883     }
24884 
operator !() const24885     bool operator!() const VULKAN_HPP_NOEXCEPT
24886     {
24887       return m_shaderModule == VK_NULL_HANDLE;
24888     }
24889 
24890   private:
24891     VkShaderModule m_shaderModule;
24892   };
24893   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" );
24894 
24895   template <>
24896   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eShaderModule>
24897   {
24898     using type = VULKAN_HPP_NAMESPACE::ShaderModule;
24899   };
24900 
24901   template <>
24902   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule>
24903   {
24904     using Type = VULKAN_HPP_NAMESPACE::ShaderModule;
24905   };
24906 
24907 
24908   template <>
24909   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule>
24910   {
24911     using Type = VULKAN_HPP_NAMESPACE::ShaderModule;
24912   };
24913 
24914 
24915   template <>
24916   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ShaderModule>
24917   {
24918     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
24919   };
24920 
24921   struct SpecializationMapEntry
24922   {
24923 
24924 
24925 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry24926     VULKAN_HPP_CONSTEXPR SpecializationMapEntry(uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {}) VULKAN_HPP_NOEXCEPT
24927     : constantID( constantID_ ), offset( offset_ ), size( size_ )
24928     {}
24929 
24930     VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
24931 
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry24932     SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
24933     {
24934       *this = rhs;
24935     }
24936 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
24937 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry24938     SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
24939     {
24940       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationMapEntry const *>( &rhs );
24941       return *this;
24942     }
24943 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry24944     SpecializationMapEntry & operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
24945     {
24946       memcpy( static_cast<void *>( this ), &rhs, sizeof( SpecializationMapEntry ) );
24947       return *this;
24948     }
24949 
setConstantIDVULKAN_HPP_NAMESPACE::SpecializationMapEntry24950     SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT
24951     {
24952       constantID = constantID_;
24953       return *this;
24954     }
24955 
setOffsetVULKAN_HPP_NAMESPACE::SpecializationMapEntry24956     SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
24957     {
24958       offset = offset_;
24959       return *this;
24960     }
24961 
setSizeVULKAN_HPP_NAMESPACE::SpecializationMapEntry24962     SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT
24963     {
24964       size = size_;
24965       return *this;
24966     }
24967 
24968 
operator VkSpecializationMapEntry const&VULKAN_HPP_NAMESPACE::SpecializationMapEntry24969     operator VkSpecializationMapEntry const&() const VULKAN_HPP_NOEXCEPT
24970     {
24971       return *reinterpret_cast<const VkSpecializationMapEntry*>( this );
24972     }
24973 
operator VkSpecializationMapEntry&VULKAN_HPP_NAMESPACE::SpecializationMapEntry24974     operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
24975     {
24976       return *reinterpret_cast<VkSpecializationMapEntry*>( this );
24977     }
24978 
24979 
24980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
24981     auto operator<=>( SpecializationMapEntry const& ) const = default;
24982 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationMapEntry24983     bool operator==( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
24984     {
24985       return ( constantID == rhs.constantID )
24986           && ( offset == rhs.offset )
24987           && ( size == rhs.size );
24988     }
24989 
operator !=VULKAN_HPP_NAMESPACE::SpecializationMapEntry24990     bool operator!=( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
24991     {
24992       return !operator==( rhs );
24993     }
24994 #endif
24995 
24996 
24997 
24998   public:
24999     uint32_t constantID = {};
25000     uint32_t offset = {};
25001     size_t size = {};
25002 
25003   };
25004   static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" );
25005   static_assert( std::is_standard_layout<SpecializationMapEntry>::value, "struct wrapper is not a standard layout!" );
25006 
25007   struct SpecializationInfo
25008   {
25009 
25010 
25011 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo25012     VULKAN_HPP_CONSTEXPR SpecializationInfo(uint32_t mapEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ = {}, size_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT
25013     : mapEntryCount( mapEntryCount_ ), pMapEntries( pMapEntries_ ), dataSize( dataSize_ ), pData( pData_ )
25014     {}
25015 
25016     VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25017 
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo25018     SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25019     {
25020       *this = rhs;
25021     }
25022 
25023 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
25024     template <typename T>
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo25025     SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ = {} )
25026     : mapEntryCount( static_cast<uint32_t>( mapEntries_.size() ) ), pMapEntries( mapEntries_.data() ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
25027     {}
25028 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
25029 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25030 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo25031     SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25032     {
25033       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationInfo const *>( &rhs );
25034       return *this;
25035     }
25036 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo25037     SpecializationInfo & operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25038     {
25039       memcpy( static_cast<void *>( this ), &rhs, sizeof( SpecializationInfo ) );
25040       return *this;
25041     }
25042 
setMapEntryCountVULKAN_HPP_NAMESPACE::SpecializationInfo25043     SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT
25044     {
25045       mapEntryCount = mapEntryCount_;
25046       return *this;
25047     }
25048 
setPMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo25049     SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ ) VULKAN_HPP_NOEXCEPT
25050     {
25051       pMapEntries = pMapEntries_;
25052       return *this;
25053     }
25054 
25055 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo25056     SpecializationInfo & setMapEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_ ) VULKAN_HPP_NOEXCEPT
25057     {
25058       mapEntryCount = static_cast<uint32_t>( mapEntries_.size() );
25059       pMapEntries = mapEntries_.data();
25060       return *this;
25061     }
25062 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
25063 
setDataSizeVULKAN_HPP_NAMESPACE::SpecializationInfo25064     SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
25065     {
25066       dataSize = dataSize_;
25067       return *this;
25068     }
25069 
setPDataVULKAN_HPP_NAMESPACE::SpecializationInfo25070     SpecializationInfo & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
25071     {
25072       pData = pData_;
25073       return *this;
25074     }
25075 
25076 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
25077     template <typename T>
setDataVULKAN_HPP_NAMESPACE::SpecializationInfo25078     SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
25079     {
25080       dataSize = data_.size() * sizeof(T);
25081       pData = data_.data();
25082       return *this;
25083     }
25084 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
25085 
25086 
operator VkSpecializationInfo const&VULKAN_HPP_NAMESPACE::SpecializationInfo25087     operator VkSpecializationInfo const&() const VULKAN_HPP_NOEXCEPT
25088     {
25089       return *reinterpret_cast<const VkSpecializationInfo*>( this );
25090     }
25091 
operator VkSpecializationInfo&VULKAN_HPP_NAMESPACE::SpecializationInfo25092     operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
25093     {
25094       return *reinterpret_cast<VkSpecializationInfo*>( this );
25095     }
25096 
25097 
25098 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25099     auto operator<=>( SpecializationInfo const& ) const = default;
25100 #else
operator ==VULKAN_HPP_NAMESPACE::SpecializationInfo25101     bool operator==( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25102     {
25103       return ( mapEntryCount == rhs.mapEntryCount )
25104           && ( pMapEntries == rhs.pMapEntries )
25105           && ( dataSize == rhs.dataSize )
25106           && ( pData == rhs.pData );
25107     }
25108 
operator !=VULKAN_HPP_NAMESPACE::SpecializationInfo25109     bool operator!=( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25110     {
25111       return !operator==( rhs );
25112     }
25113 #endif
25114 
25115 
25116 
25117   public:
25118     uint32_t mapEntryCount = {};
25119     const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries = {};
25120     size_t dataSize = {};
25121     const void* pData = {};
25122 
25123   };
25124   static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" );
25125   static_assert( std::is_standard_layout<SpecializationInfo>::value, "struct wrapper is not a standard layout!" );
25126 
25127   struct PipelineShaderStageCreateInfo
25128   {
25129     static const bool allowDuplicate = false;
25130     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo;
25131 
25132 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25133     VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo(VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex, VULKAN_HPP_NAMESPACE::ShaderModule module_ = {}, const char* pName_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ = {}) VULKAN_HPP_NOEXCEPT
25134     : flags( flags_ ), stage( stage_ ), module( module_ ), pName( pName_ ), pSpecializationInfo( pSpecializationInfo_ )
25135     {}
25136 
25137     VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25138 
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25139     PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25140     {
25141       *this = rhs;
25142     }
25143 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25144 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25145     PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25146     {
25147       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const *>( &rhs );
25148       return *this;
25149     }
25150 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25151     PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25152     {
25153       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineShaderStageCreateInfo ) );
25154       return *this;
25155     }
25156 
setPNextVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25157     PipelineShaderStageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25158     {
25159       pNext = pNext_;
25160       return *this;
25161     }
25162 
setFlagsVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25163     PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
25164     {
25165       flags = flags_;
25166       return *this;
25167     }
25168 
setStageVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25169     PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
25170     {
25171       stage = stage_;
25172       return *this;
25173     }
25174 
setModuleVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25175     PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT
25176     {
25177       module = module_;
25178       return *this;
25179     }
25180 
setPNameVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25181     PipelineShaderStageCreateInfo & setPName( const char* pName_ ) VULKAN_HPP_NOEXCEPT
25182     {
25183       pName = pName_;
25184       return *this;
25185     }
25186 
setPSpecializationInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25187     PipelineShaderStageCreateInfo & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
25188     {
25189       pSpecializationInfo = pSpecializationInfo_;
25190       return *this;
25191     }
25192 
25193 
operator VkPipelineShaderStageCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25194     operator VkPipelineShaderStageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
25195     {
25196       return *reinterpret_cast<const VkPipelineShaderStageCreateInfo*>( this );
25197     }
25198 
operator VkPipelineShaderStageCreateInfo&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25199     operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
25200     {
25201       return *reinterpret_cast<VkPipelineShaderStageCreateInfo*>( this );
25202     }
25203 
25204 
25205 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25206     auto operator<=>( PipelineShaderStageCreateInfo const& ) const = default;
25207 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25208     bool operator==( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25209     {
25210       return ( sType == rhs.sType )
25211           && ( pNext == rhs.pNext )
25212           && ( flags == rhs.flags )
25213           && ( stage == rhs.stage )
25214           && ( module == rhs.module )
25215           && ( pName == rhs.pName )
25216           && ( pSpecializationInfo == rhs.pSpecializationInfo );
25217     }
25218 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo25219     bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25220     {
25221       return !operator==( rhs );
25222     }
25223 #endif
25224 
25225 
25226 
25227   public:
25228     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
25229     const void* pNext = {};
25230     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {};
25231     VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
25232     VULKAN_HPP_NAMESPACE::ShaderModule module = {};
25233     const char* pName = {};
25234     const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo = {};
25235 
25236   };
25237   static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" );
25238   static_assert( std::is_standard_layout<PipelineShaderStageCreateInfo>::value, "struct wrapper is not a standard layout!" );
25239 
25240   template <>
25241   struct CppType<StructureType, StructureType::ePipelineShaderStageCreateInfo>
25242   {
25243     using Type = PipelineShaderStageCreateInfo;
25244   };
25245 
25246   class PipelineLayout
25247   {
25248   public:
25249     using CType = VkPipelineLayout;
25250 
25251     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout;
25252     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
25253 
25254   public:
PipelineLayout()25255     VULKAN_HPP_CONSTEXPR PipelineLayout() VULKAN_HPP_NOEXCEPT
25256       : m_pipelineLayout(VK_NULL_HANDLE)
25257     {}
25258 
PipelineLayout(std::nullptr_t)25259     VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25260       : m_pipelineLayout(VK_NULL_HANDLE)
25261     {}
25262 
PipelineLayout(VkPipelineLayout pipelineLayout)25263     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT
25264       : m_pipelineLayout( pipelineLayout )
25265     {}
25266 
25267 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineLayout pipelineLayout)25268     PipelineLayout & operator=(VkPipelineLayout pipelineLayout) VULKAN_HPP_NOEXCEPT
25269     {
25270       m_pipelineLayout = pipelineLayout;
25271       return *this;
25272     }
25273 #endif
25274 
operator =(std::nullptr_t)25275     PipelineLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25276     {
25277       m_pipelineLayout = VK_NULL_HANDLE;
25278       return *this;
25279     }
25280 
25281 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25282     auto operator<=>( PipelineLayout const& ) const = default;
25283 #else
operator ==(PipelineLayout const & rhs) const25284     bool operator==( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
25285     {
25286       return m_pipelineLayout == rhs.m_pipelineLayout;
25287     }
25288 
operator !=(PipelineLayout const & rhs) const25289     bool operator!=(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
25290     {
25291       return m_pipelineLayout != rhs.m_pipelineLayout;
25292     }
25293 
operator <(PipelineLayout const & rhs) const25294     bool operator<(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
25295     {
25296       return m_pipelineLayout < rhs.m_pipelineLayout;
25297     }
25298 #endif
25299 
operator VkPipelineLayout() const25300     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const VULKAN_HPP_NOEXCEPT
25301     {
25302       return m_pipelineLayout;
25303     }
25304 
operator bool() const25305     explicit operator bool() const VULKAN_HPP_NOEXCEPT
25306     {
25307       return m_pipelineLayout != VK_NULL_HANDLE;
25308     }
25309 
operator !() const25310     bool operator!() const VULKAN_HPP_NOEXCEPT
25311     {
25312       return m_pipelineLayout == VK_NULL_HANDLE;
25313     }
25314 
25315   private:
25316     VkPipelineLayout m_pipelineLayout;
25317   };
25318   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" );
25319 
25320   template <>
25321   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineLayout>
25322   {
25323     using type = VULKAN_HPP_NAMESPACE::PipelineLayout;
25324   };
25325 
25326   template <>
25327   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout>
25328   {
25329     using Type = VULKAN_HPP_NAMESPACE::PipelineLayout;
25330   };
25331 
25332 
25333   template <>
25334   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout>
25335   {
25336     using Type = VULKAN_HPP_NAMESPACE::PipelineLayout;
25337   };
25338 
25339 
25340   template <>
25341   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PipelineLayout>
25342   {
25343     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
25344   };
25345 
25346   class Pipeline
25347   {
25348   public:
25349     using CType = VkPipeline;
25350 
25351     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline;
25352     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
25353 
25354   public:
Pipeline()25355     VULKAN_HPP_CONSTEXPR Pipeline() VULKAN_HPP_NOEXCEPT
25356       : m_pipeline(VK_NULL_HANDLE)
25357     {}
25358 
Pipeline(std::nullptr_t)25359     VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25360       : m_pipeline(VK_NULL_HANDLE)
25361     {}
25362 
Pipeline(VkPipeline pipeline)25363     VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT
25364       : m_pipeline( pipeline )
25365     {}
25366 
25367 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipeline pipeline)25368     Pipeline & operator=(VkPipeline pipeline) VULKAN_HPP_NOEXCEPT
25369     {
25370       m_pipeline = pipeline;
25371       return *this;
25372     }
25373 #endif
25374 
operator =(std::nullptr_t)25375     Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
25376     {
25377       m_pipeline = VK_NULL_HANDLE;
25378       return *this;
25379     }
25380 
25381 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25382     auto operator<=>( Pipeline const& ) const = default;
25383 #else
operator ==(Pipeline const & rhs) const25384     bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
25385     {
25386       return m_pipeline == rhs.m_pipeline;
25387     }
25388 
operator !=(Pipeline const & rhs) const25389     bool operator!=(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
25390     {
25391       return m_pipeline != rhs.m_pipeline;
25392     }
25393 
operator <(Pipeline const & rhs) const25394     bool operator<(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT
25395     {
25396       return m_pipeline < rhs.m_pipeline;
25397     }
25398 #endif
25399 
operator VkPipeline() const25400     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT
25401     {
25402       return m_pipeline;
25403     }
25404 
operator bool() const25405     explicit operator bool() const VULKAN_HPP_NOEXCEPT
25406     {
25407       return m_pipeline != VK_NULL_HANDLE;
25408     }
25409 
operator !() const25410     bool operator!() const VULKAN_HPP_NOEXCEPT
25411     {
25412       return m_pipeline == VK_NULL_HANDLE;
25413     }
25414 
25415   private:
25416     VkPipeline m_pipeline;
25417   };
25418   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" );
25419 
25420   template <>
25421   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipeline>
25422   {
25423     using type = VULKAN_HPP_NAMESPACE::Pipeline;
25424   };
25425 
25426   template <>
25427   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipeline>
25428   {
25429     using Type = VULKAN_HPP_NAMESPACE::Pipeline;
25430   };
25431 
25432 
25433   template <>
25434   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline>
25435   {
25436     using Type = VULKAN_HPP_NAMESPACE::Pipeline;
25437   };
25438 
25439 
25440   template <>
25441   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Pipeline>
25442   {
25443     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
25444   };
25445 
25446   struct ComputePipelineCreateInfo
25447   {
25448     static const bool allowDuplicate = false;
25449     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo;
25450 
25451 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25452     VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT
25453     : flags( flags_ ), stage( stage_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
25454     {}
25455 
25456     VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25457 
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25458     ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25459     {
25460       *this = rhs;
25461     }
25462 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25463 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25464     ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25465     {
25466       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const *>( &rhs );
25467       return *this;
25468     }
25469 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25470     ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
25471     {
25472       memcpy( static_cast<void *>( this ), &rhs, sizeof( ComputePipelineCreateInfo ) );
25473       return *this;
25474     }
25475 
setPNextVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25476     ComputePipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25477     {
25478       pNext = pNext_;
25479       return *this;
25480     }
25481 
setFlagsVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25482     ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
25483     {
25484       flags = flags_;
25485       return *this;
25486     }
25487 
setStageVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25488     ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT
25489     {
25490       stage = stage_;
25491       return *this;
25492     }
25493 
setLayoutVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25494     ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
25495     {
25496       layout = layout_;
25497       return *this;
25498     }
25499 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25500     ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
25501     {
25502       basePipelineHandle = basePipelineHandle_;
25503       return *this;
25504     }
25505 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25506     ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
25507     {
25508       basePipelineIndex = basePipelineIndex_;
25509       return *this;
25510     }
25511 
25512 
operator VkComputePipelineCreateInfo const&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25513     operator VkComputePipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
25514     {
25515       return *reinterpret_cast<const VkComputePipelineCreateInfo*>( this );
25516     }
25517 
operator VkComputePipelineCreateInfo&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25518     operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
25519     {
25520       return *reinterpret_cast<VkComputePipelineCreateInfo*>( this );
25521     }
25522 
25523 
25524 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25525     auto operator<=>( ComputePipelineCreateInfo const& ) const = default;
25526 #else
operator ==VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25527     bool operator==( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25528     {
25529       return ( sType == rhs.sType )
25530           && ( pNext == rhs.pNext )
25531           && ( flags == rhs.flags )
25532           && ( stage == rhs.stage )
25533           && ( layout == rhs.layout )
25534           && ( basePipelineHandle == rhs.basePipelineHandle )
25535           && ( basePipelineIndex == rhs.basePipelineIndex );
25536     }
25537 
operator !=VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo25538     bool operator!=( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
25539     {
25540       return !operator==( rhs );
25541     }
25542 #endif
25543 
25544 
25545 
25546   public:
25547     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo;
25548     const void* pNext = {};
25549     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
25550     VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {};
25551     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
25552     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
25553     int32_t basePipelineIndex = {};
25554 
25555   };
25556   static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" );
25557   static_assert( std::is_standard_layout<ComputePipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
25558 
25559   template <>
25560   struct CppType<StructureType, StructureType::eComputePipelineCreateInfo>
25561   {
25562     using Type = ComputePipelineCreateInfo;
25563   };
25564 
25565   struct ConditionalRenderingBeginInfoEXT
25566   {
25567     static const bool allowDuplicate = false;
25568     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT;
25569 
25570 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25571     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
25572     : buffer( buffer_ ), offset( offset_ ), flags( flags_ )
25573     {}
25574 
25575     VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25576 
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25577     ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25578     {
25579       *this = rhs;
25580     }
25581 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25582 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25583     ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25584     {
25585       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const *>( &rhs );
25586       return *this;
25587     }
25588 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25589     ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
25590     {
25591       memcpy( static_cast<void *>( this ), &rhs, sizeof( ConditionalRenderingBeginInfoEXT ) );
25592       return *this;
25593     }
25594 
setPNextVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25595     ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25596     {
25597       pNext = pNext_;
25598       return *this;
25599     }
25600 
setBufferVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25601     ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
25602     {
25603       buffer = buffer_;
25604       return *this;
25605     }
25606 
setOffsetVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25607     ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
25608     {
25609       offset = offset_;
25610       return *this;
25611     }
25612 
setFlagsVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25613     ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
25614     {
25615       flags = flags_;
25616       return *this;
25617     }
25618 
25619 
operator VkConditionalRenderingBeginInfoEXT const&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25620     operator VkConditionalRenderingBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
25621     {
25622       return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( this );
25623     }
25624 
operator VkConditionalRenderingBeginInfoEXT&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25625     operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
25626     {
25627       return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>( this );
25628     }
25629 
25630 
25631 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25632     auto operator<=>( ConditionalRenderingBeginInfoEXT const& ) const = default;
25633 #else
operator ==VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25634     bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25635     {
25636       return ( sType == rhs.sType )
25637           && ( pNext == rhs.pNext )
25638           && ( buffer == rhs.buffer )
25639           && ( offset == rhs.offset )
25640           && ( flags == rhs.flags );
25641     }
25642 
operator !=VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT25643     bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
25644     {
25645       return !operator==( rhs );
25646     }
25647 #endif
25648 
25649 
25650 
25651   public:
25652     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
25653     const void* pNext = {};
25654     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
25655     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
25656     VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {};
25657 
25658   };
25659   static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" );
25660   static_assert( std::is_standard_layout<ConditionalRenderingBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
25661 
25662   template <>
25663   struct CppType<StructureType, StructureType::eConditionalRenderingBeginInfoEXT>
25664   {
25665     using Type = ConditionalRenderingBeginInfoEXT;
25666   };
25667 
25668   struct ConformanceVersion
25669   {
25670 
25671 
25672 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion25673     VULKAN_HPP_CONSTEXPR ConformanceVersion(uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {}) VULKAN_HPP_NOEXCEPT
25674     : major( major_ ), minor( minor_ ), subminor( subminor_ ), patch( patch_ )
25675     {}
25676 
25677     VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25678 
ConformanceVersionVULKAN_HPP_NAMESPACE::ConformanceVersion25679     ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
25680     {
25681       *this = rhs;
25682     }
25683 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25684 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersion25685     ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
25686     {
25687       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConformanceVersion const *>( &rhs );
25688       return *this;
25689     }
25690 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersion25691     ConformanceVersion & operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
25692     {
25693       memcpy( static_cast<void *>( this ), &rhs, sizeof( ConformanceVersion ) );
25694       return *this;
25695     }
25696 
setMajorVULKAN_HPP_NAMESPACE::ConformanceVersion25697     ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT
25698     {
25699       major = major_;
25700       return *this;
25701     }
25702 
setMinorVULKAN_HPP_NAMESPACE::ConformanceVersion25703     ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT
25704     {
25705       minor = minor_;
25706       return *this;
25707     }
25708 
setSubminorVULKAN_HPP_NAMESPACE::ConformanceVersion25709     ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT
25710     {
25711       subminor = subminor_;
25712       return *this;
25713     }
25714 
setPatchVULKAN_HPP_NAMESPACE::ConformanceVersion25715     ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT
25716     {
25717       patch = patch_;
25718       return *this;
25719     }
25720 
25721 
operator VkConformanceVersion const&VULKAN_HPP_NAMESPACE::ConformanceVersion25722     operator VkConformanceVersion const&() const VULKAN_HPP_NOEXCEPT
25723     {
25724       return *reinterpret_cast<const VkConformanceVersion*>( this );
25725     }
25726 
operator VkConformanceVersion&VULKAN_HPP_NAMESPACE::ConformanceVersion25727     operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
25728     {
25729       return *reinterpret_cast<VkConformanceVersion*>( this );
25730     }
25731 
25732 
25733 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25734     auto operator<=>( ConformanceVersion const& ) const = default;
25735 #else
operator ==VULKAN_HPP_NAMESPACE::ConformanceVersion25736     bool operator==( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
25737     {
25738       return ( major == rhs.major )
25739           && ( minor == rhs.minor )
25740           && ( subminor == rhs.subminor )
25741           && ( patch == rhs.patch );
25742     }
25743 
operator !=VULKAN_HPP_NAMESPACE::ConformanceVersion25744     bool operator!=( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT
25745     {
25746       return !operator==( rhs );
25747     }
25748 #endif
25749 
25750 
25751 
25752   public:
25753     uint8_t major = {};
25754     uint8_t minor = {};
25755     uint8_t subminor = {};
25756     uint8_t patch = {};
25757 
25758   };
25759   static_assert( sizeof( ConformanceVersion ) == sizeof( VkConformanceVersion ), "struct and wrapper have different size!" );
25760   static_assert( std::is_standard_layout<ConformanceVersion>::value, "struct wrapper is not a standard layout!" );
25761   using ConformanceVersionKHR = ConformanceVersion;
25762 
25763   struct CooperativeMatrixPropertiesNV
25764   {
25765     static const bool allowDuplicate = false;
25766     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV;
25767 
25768 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25769     VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV(uint32_t MSize_ = {}, uint32_t NSize_ = {}, uint32_t KSize_ = {}, VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ScopeNV scope_ = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice) VULKAN_HPP_NOEXCEPT
25770     : MSize( MSize_ ), NSize( NSize_ ), KSize( KSize_ ), AType( AType_ ), BType( BType_ ), CType( CType_ ), DType( DType_ ), scope( scope_ )
25771     {}
25772 
25773     VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25774 
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25775     CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
25776     {
25777       *this = rhs;
25778     }
25779 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25780 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25781     CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
25782     {
25783       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const *>( &rhs );
25784       return *this;
25785     }
25786 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25787     CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
25788     {
25789       memcpy( static_cast<void *>( this ), &rhs, sizeof( CooperativeMatrixPropertiesNV ) );
25790       return *this;
25791     }
25792 
setPNextVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25793     CooperativeMatrixPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
25794     {
25795       pNext = pNext_;
25796       return *this;
25797     }
25798 
setMSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25799     CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
25800     {
25801       MSize = MSize_;
25802       return *this;
25803     }
25804 
setNSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25805     CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
25806     {
25807       NSize = NSize_;
25808       return *this;
25809     }
25810 
setKSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25811     CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
25812     {
25813       KSize = KSize_;
25814       return *this;
25815     }
25816 
setATypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25817     CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT
25818     {
25819       AType = AType_;
25820       return *this;
25821     }
25822 
setBTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25823     CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT
25824     {
25825       BType = BType_;
25826       return *this;
25827     }
25828 
setCTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25829     CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT
25830     {
25831       CType = CType_;
25832       return *this;
25833     }
25834 
setDTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25835     CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT
25836     {
25837       DType = DType_;
25838       return *this;
25839     }
25840 
setScopeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25841     CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT
25842     {
25843       scope = scope_;
25844       return *this;
25845     }
25846 
25847 
operator VkCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25848     operator VkCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
25849     {
25850       return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV*>( this );
25851     }
25852 
operator VkCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25853     operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
25854     {
25855       return *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( this );
25856     }
25857 
25858 
25859 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25860     auto operator<=>( CooperativeMatrixPropertiesNV const& ) const = default;
25861 #else
operator ==VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25862     bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
25863     {
25864       return ( sType == rhs.sType )
25865           && ( pNext == rhs.pNext )
25866           && ( MSize == rhs.MSize )
25867           && ( NSize == rhs.NSize )
25868           && ( KSize == rhs.KSize )
25869           && ( AType == rhs.AType )
25870           && ( BType == rhs.BType )
25871           && ( CType == rhs.CType )
25872           && ( DType == rhs.DType )
25873           && ( scope == rhs.scope );
25874     }
25875 
operator !=VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV25876     bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
25877     {
25878       return !operator==( rhs );
25879     }
25880 #endif
25881 
25882 
25883 
25884   public:
25885     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
25886     void* pNext = {};
25887     uint32_t MSize = {};
25888     uint32_t NSize = {};
25889     uint32_t KSize = {};
25890     VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25891     VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25892     VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25893     VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16;
25894     VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice;
25895 
25896   };
25897   static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
25898   static_assert( std::is_standard_layout<CooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
25899 
25900   template <>
25901   struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesNV>
25902   {
25903     using Type = CooperativeMatrixPropertiesNV;
25904   };
25905 
25906 #ifdef VK_ENABLE_BETA_EXTENSIONS
25907   struct CopyAccelerationStructureInfoKHR
25908   {
25909     static const bool allowDuplicate = false;
25910     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR;
25911 
25912 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25913     VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT
25914     : src( src_ ), dst( dst_ ), mode( mode_ )
25915     {}
25916 
25917     VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
25918 
CopyAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25919     CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25920     {
25921       *this = rhs;
25922     }
25923 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
25924 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25925     CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25926     {
25927       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const *>( &rhs );
25928       return *this;
25929     }
25930 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25931     CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
25932     {
25933       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyAccelerationStructureInfoKHR ) );
25934       return *this;
25935     }
25936 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25937     CopyAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
25938     {
25939       pNext = pNext_;
25940       return *this;
25941     }
25942 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25943     CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
25944     {
25945       src = src_;
25946       return *this;
25947     }
25948 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25949     CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
25950     {
25951       dst = dst_;
25952       return *this;
25953     }
25954 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25955     CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
25956     {
25957       mode = mode_;
25958       return *this;
25959     }
25960 
25961 
operator VkCopyAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25962     operator VkCopyAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
25963     {
25964       return *reinterpret_cast<const VkCopyAccelerationStructureInfoKHR*>( this );
25965     }
25966 
operator VkCopyAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25967     operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
25968     {
25969       return *reinterpret_cast<VkCopyAccelerationStructureInfoKHR*>( this );
25970     }
25971 
25972 
25973 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
25974     auto operator<=>( CopyAccelerationStructureInfoKHR const& ) const = default;
25975 #else
operator ==VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25976     bool operator==( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
25977     {
25978       return ( sType == rhs.sType )
25979           && ( pNext == rhs.pNext )
25980           && ( src == rhs.src )
25981           && ( dst == rhs.dst )
25982           && ( mode == rhs.mode );
25983     }
25984 
operator !=VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR25985     bool operator!=( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
25986     {
25987       return !operator==( rhs );
25988     }
25989 #endif
25990 
25991 
25992 
25993   public:
25994     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR;
25995     const void* pNext = {};
25996     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
25997     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
25998     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
25999 
26000   };
26001   static_assert( sizeof( CopyAccelerationStructureInfoKHR ) == sizeof( VkCopyAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
26002   static_assert( std::is_standard_layout<CopyAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
26003 
26004   template <>
26005   struct CppType<StructureType, StructureType::eCopyAccelerationStructureInfoKHR>
26006   {
26007     using Type = CopyAccelerationStructureInfoKHR;
26008   };
26009 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
26010 
26011 #ifdef VK_ENABLE_BETA_EXTENSIONS
26012   struct CopyAccelerationStructureToMemoryInfoKHR
26013   {
26014     static const bool allowDuplicate = false;
26015     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
26016 
26017 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26018     CopyAccelerationStructureToMemoryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT
26019     : src( src_ ), dst( dst_ ), mode( mode_ )
26020     {}
26021 
26022     CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26023 
CopyAccelerationStructureToMemoryInfoKHRVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26024     CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26025     {
26026       *this = rhs;
26027     }
26028 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26029 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26030     CopyAccelerationStructureToMemoryInfoKHR & operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26031     {
26032       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs );
26033       return *this;
26034     }
26035 
operator =VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26036     CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
26037     {
26038       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyAccelerationStructureToMemoryInfoKHR ) );
26039       return *this;
26040     }
26041 
setPNextVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26042     CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26043     {
26044       pNext = pNext_;
26045       return *this;
26046     }
26047 
setSrcVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26048     CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
26049     {
26050       src = src_;
26051       return *this;
26052     }
26053 
setDstVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26054     CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
26055     {
26056       dst = dst_;
26057       return *this;
26058     }
26059 
setModeVULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26060     CopyAccelerationStructureToMemoryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
26061     {
26062       mode = mode_;
26063       return *this;
26064     }
26065 
26066 
operator VkCopyAccelerationStructureToMemoryInfoKHR const&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26067     operator VkCopyAccelerationStructureToMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT
26068     {
26069       return *reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
26070     }
26071 
operator VkCopyAccelerationStructureToMemoryInfoKHR&VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR26072     operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
26073     {
26074       return *reinterpret_cast<VkCopyAccelerationStructureToMemoryInfoKHR*>( this );
26075     }
26076 
26077 
26078 
26079 
26080   public:
26081     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
26082     const void* pNext = {};
26083     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
26084     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
26085     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
26086 
26087   };
26088   static_assert( sizeof( CopyAccelerationStructureToMemoryInfoKHR ) == sizeof( VkCopyAccelerationStructureToMemoryInfoKHR ), "struct and wrapper have different size!" );
26089   static_assert( std::is_standard_layout<CopyAccelerationStructureToMemoryInfoKHR>::value, "struct wrapper is not a standard layout!" );
26090 
26091   template <>
26092   struct CppType<StructureType, StructureType::eCopyAccelerationStructureToMemoryInfoKHR>
26093   {
26094     using Type = CopyAccelerationStructureToMemoryInfoKHR;
26095   };
26096 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
26097 
26098   struct CopyBufferInfo2KHR
26099   {
26100     static const bool allowDuplicate = false;
26101     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2KHR;
26102 
26103 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26104     VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR(VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT
26105     : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26106     {}
26107 
26108     VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26109 
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26110     CopyBufferInfo2KHR( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26111     {
26112       *this = rhs;
26113     }
26114 
26115 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26116     CopyBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2KHR> const & regions_ )
26117     : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26118     {}
26119 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26120 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26121 
operator =VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26122     CopyBufferInfo2KHR & operator=( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26123     {
26124       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR const *>( &rhs );
26125       return *this;
26126     }
26127 
operator =VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26128     CopyBufferInfo2KHR & operator=( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26129     {
26130       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyBufferInfo2KHR ) );
26131       return *this;
26132     }
26133 
setPNextVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26134     CopyBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26135     {
26136       pNext = pNext_;
26137       return *this;
26138     }
26139 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26140     CopyBufferInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
26141     {
26142       srcBuffer = srcBuffer_;
26143       return *this;
26144     }
26145 
setDstBufferVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26146     CopyBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
26147     {
26148       dstBuffer = dstBuffer_;
26149       return *this;
26150     }
26151 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26152     CopyBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26153     {
26154       regionCount = regionCount_;
26155       return *this;
26156     }
26157 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26158     CopyBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26159     {
26160       pRegions = pRegions_;
26161       return *this;
26162     }
26163 
26164 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26165     CopyBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26166     {
26167       regionCount = static_cast<uint32_t>( regions_.size() );
26168       pRegions = regions_.data();
26169       return *this;
26170     }
26171 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26172 
26173 
operator VkCopyBufferInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26174     operator VkCopyBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26175     {
26176       return *reinterpret_cast<const VkCopyBufferInfo2KHR*>( this );
26177     }
26178 
operator VkCopyBufferInfo2KHR&VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26179     operator VkCopyBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT
26180     {
26181       return *reinterpret_cast<VkCopyBufferInfo2KHR*>( this );
26182     }
26183 
26184 
26185 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26186     auto operator<=>( CopyBufferInfo2KHR const& ) const = default;
26187 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26188     bool operator==( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26189     {
26190       return ( sType == rhs.sType )
26191           && ( pNext == rhs.pNext )
26192           && ( srcBuffer == rhs.srcBuffer )
26193           && ( dstBuffer == rhs.dstBuffer )
26194           && ( regionCount == rhs.regionCount )
26195           && ( pRegions == rhs.pRegions );
26196     }
26197 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR26198     bool operator!=( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26199     {
26200       return !operator==( rhs );
26201     }
26202 #endif
26203 
26204 
26205 
26206   public:
26207     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2KHR;
26208     const void* pNext = {};
26209     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
26210     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
26211     uint32_t regionCount = {};
26212     const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions = {};
26213 
26214   };
26215   static_assert( sizeof( CopyBufferInfo2KHR ) == sizeof( VkCopyBufferInfo2KHR ), "struct and wrapper have different size!" );
26216   static_assert( std::is_standard_layout<CopyBufferInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26217 
26218   template <>
26219   struct CppType<StructureType, StructureType::eCopyBufferInfo2KHR>
26220   {
26221     using Type = CopyBufferInfo2KHR;
26222   };
26223 
26224   struct CopyBufferToImageInfo2KHR
26225   {
26226     static const bool allowDuplicate = false;
26227     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2KHR;
26228 
26229 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26230     VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR(VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT
26231     : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26232     {}
26233 
26234     VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26235 
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26236     CopyBufferToImageInfo2KHR( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26237     {
26238       *this = rhs;
26239     }
26240 
26241 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyBufferToImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26242     CopyBufferToImageInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ )
26243     : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26244     {}
26245 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26246 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26247 
operator =VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26248     CopyBufferToImageInfo2KHR & operator=( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26249     {
26250       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR const *>( &rhs );
26251       return *this;
26252     }
26253 
operator =VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26254     CopyBufferToImageInfo2KHR & operator=( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26255     {
26256       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyBufferToImageInfo2KHR ) );
26257       return *this;
26258     }
26259 
setPNextVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26260     CopyBufferToImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26261     {
26262       pNext = pNext_;
26263       return *this;
26264     }
26265 
setSrcBufferVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26266     CopyBufferToImageInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
26267     {
26268       srcBuffer = srcBuffer_;
26269       return *this;
26270     }
26271 
setDstImageVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26272     CopyBufferToImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
26273     {
26274       dstImage = dstImage_;
26275       return *this;
26276     }
26277 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26278     CopyBufferToImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
26279     {
26280       dstImageLayout = dstImageLayout_;
26281       return *this;
26282     }
26283 
setRegionCountVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26284     CopyBufferToImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26285     {
26286       regionCount = regionCount_;
26287       return *this;
26288     }
26289 
setPRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26290     CopyBufferToImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26291     {
26292       pRegions = pRegions_;
26293       return *this;
26294     }
26295 
26296 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26297     CopyBufferToImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26298     {
26299       regionCount = static_cast<uint32_t>( regions_.size() );
26300       pRegions = regions_.data();
26301       return *this;
26302     }
26303 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26304 
26305 
operator VkCopyBufferToImageInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26306     operator VkCopyBufferToImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26307     {
26308       return *reinterpret_cast<const VkCopyBufferToImageInfo2KHR*>( this );
26309     }
26310 
operator VkCopyBufferToImageInfo2KHR&VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26311     operator VkCopyBufferToImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
26312     {
26313       return *reinterpret_cast<VkCopyBufferToImageInfo2KHR*>( this );
26314     }
26315 
26316 
26317 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26318     auto operator<=>( CopyBufferToImageInfo2KHR const& ) const = default;
26319 #else
operator ==VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26320     bool operator==( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26321     {
26322       return ( sType == rhs.sType )
26323           && ( pNext == rhs.pNext )
26324           && ( srcBuffer == rhs.srcBuffer )
26325           && ( dstImage == rhs.dstImage )
26326           && ( dstImageLayout == rhs.dstImageLayout )
26327           && ( regionCount == rhs.regionCount )
26328           && ( pRegions == rhs.pRegions );
26329     }
26330 
operator !=VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR26331     bool operator!=( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26332     {
26333       return !operator==( rhs );
26334     }
26335 #endif
26336 
26337 
26338 
26339   public:
26340     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2KHR;
26341     const void* pNext = {};
26342     VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
26343     VULKAN_HPP_NAMESPACE::Image dstImage = {};
26344     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26345     uint32_t regionCount = {};
26346     const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {};
26347 
26348   };
26349   static_assert( sizeof( CopyBufferToImageInfo2KHR ) == sizeof( VkCopyBufferToImageInfo2KHR ), "struct and wrapper have different size!" );
26350   static_assert( std::is_standard_layout<CopyBufferToImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26351 
26352   template <>
26353   struct CppType<StructureType, StructureType::eCopyBufferToImageInfo2KHR>
26354   {
26355     using Type = CopyBufferToImageInfo2KHR;
26356   };
26357 
26358   struct CopyCommandTransformInfoQCOM
26359   {
26360     static const bool allowDuplicate = false;
26361     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyCommandTransformInfoQCOM;
26362 
26363 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyCommandTransformInfoQCOMVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26364     VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT
26365     : transform( transform_ )
26366     {}
26367 
26368     VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26369 
CopyCommandTransformInfoQCOMVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26370     CopyCommandTransformInfoQCOM( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
26371     {
26372       *this = rhs;
26373     }
26374 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26375 
operator =VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26376     CopyCommandTransformInfoQCOM & operator=( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
26377     {
26378       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM const *>( &rhs );
26379       return *this;
26380     }
26381 
operator =VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26382     CopyCommandTransformInfoQCOM & operator=( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
26383     {
26384       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyCommandTransformInfoQCOM ) );
26385       return *this;
26386     }
26387 
setPNextVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26388     CopyCommandTransformInfoQCOM & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26389     {
26390       pNext = pNext_;
26391       return *this;
26392     }
26393 
setTransformVULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26394     CopyCommandTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
26395     {
26396       transform = transform_;
26397       return *this;
26398     }
26399 
26400 
operator VkCopyCommandTransformInfoQCOM const&VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26401     operator VkCopyCommandTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
26402     {
26403       return *reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>( this );
26404     }
26405 
operator VkCopyCommandTransformInfoQCOM&VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26406     operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
26407     {
26408       return *reinterpret_cast<VkCopyCommandTransformInfoQCOM*>( this );
26409     }
26410 
26411 
26412 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26413     auto operator<=>( CopyCommandTransformInfoQCOM const& ) const = default;
26414 #else
operator ==VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26415     bool operator==( CopyCommandTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
26416     {
26417       return ( sType == rhs.sType )
26418           && ( pNext == rhs.pNext )
26419           && ( transform == rhs.transform );
26420     }
26421 
operator !=VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM26422     bool operator!=( CopyCommandTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
26423     {
26424       return !operator==( rhs );
26425     }
26426 #endif
26427 
26428 
26429 
26430   public:
26431     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyCommandTransformInfoQCOM;
26432     const void* pNext = {};
26433     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
26434 
26435   };
26436   static_assert( sizeof( CopyCommandTransformInfoQCOM ) == sizeof( VkCopyCommandTransformInfoQCOM ), "struct and wrapper have different size!" );
26437   static_assert( std::is_standard_layout<CopyCommandTransformInfoQCOM>::value, "struct wrapper is not a standard layout!" );
26438 
26439   template <>
26440   struct CppType<StructureType, StructureType::eCopyCommandTransformInfoQCOM>
26441   {
26442     using Type = CopyCommandTransformInfoQCOM;
26443   };
26444 
26445   class DescriptorSet
26446   {
26447   public:
26448     using CType = VkDescriptorSet;
26449 
26450     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet;
26451     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet;
26452 
26453   public:
DescriptorSet()26454     VULKAN_HPP_CONSTEXPR DescriptorSet() VULKAN_HPP_NOEXCEPT
26455       : m_descriptorSet(VK_NULL_HANDLE)
26456     {}
26457 
DescriptorSet(std::nullptr_t)26458     VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26459       : m_descriptorSet(VK_NULL_HANDLE)
26460     {}
26461 
DescriptorSet(VkDescriptorSet descriptorSet)26462     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT
26463       : m_descriptorSet( descriptorSet )
26464     {}
26465 
26466 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSet descriptorSet)26467     DescriptorSet & operator=(VkDescriptorSet descriptorSet) VULKAN_HPP_NOEXCEPT
26468     {
26469       m_descriptorSet = descriptorSet;
26470       return *this;
26471     }
26472 #endif
26473 
operator =(std::nullptr_t)26474     DescriptorSet & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
26475     {
26476       m_descriptorSet = VK_NULL_HANDLE;
26477       return *this;
26478     }
26479 
26480 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26481     auto operator<=>( DescriptorSet const& ) const = default;
26482 #else
operator ==(DescriptorSet const & rhs) const26483     bool operator==( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26484     {
26485       return m_descriptorSet == rhs.m_descriptorSet;
26486     }
26487 
operator !=(DescriptorSet const & rhs) const26488     bool operator!=(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26489     {
26490       return m_descriptorSet != rhs.m_descriptorSet;
26491     }
26492 
operator <(DescriptorSet const & rhs) const26493     bool operator<(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
26494     {
26495       return m_descriptorSet < rhs.m_descriptorSet;
26496     }
26497 #endif
26498 
operator VkDescriptorSet() const26499     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const VULKAN_HPP_NOEXCEPT
26500     {
26501       return m_descriptorSet;
26502     }
26503 
operator bool() const26504     explicit operator bool() const VULKAN_HPP_NOEXCEPT
26505     {
26506       return m_descriptorSet != VK_NULL_HANDLE;
26507     }
26508 
operator !() const26509     bool operator!() const VULKAN_HPP_NOEXCEPT
26510     {
26511       return m_descriptorSet == VK_NULL_HANDLE;
26512     }
26513 
26514   private:
26515     VkDescriptorSet m_descriptorSet;
26516   };
26517   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" );
26518 
26519   template <>
26520   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSet>
26521   {
26522     using type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26523   };
26524 
26525   template <>
26526   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet>
26527   {
26528     using Type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26529   };
26530 
26531 
26532   template <>
26533   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet>
26534   {
26535     using Type = VULKAN_HPP_NAMESPACE::DescriptorSet;
26536   };
26537 
26538 
26539   template <>
26540   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorSet>
26541   {
26542     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
26543   };
26544 
26545   struct CopyDescriptorSet
26546   {
26547     static const bool allowDuplicate = false;
26548     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet;
26549 
26550 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26551     VULKAN_HPP_CONSTEXPR CopyDescriptorSet(VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ = {}, uint32_t srcBinding_ = {}, uint32_t srcArrayElement_ = {}, VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
26552     : srcSet( srcSet_ ), srcBinding( srcBinding_ ), srcArrayElement( srcArrayElement_ ), dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ )
26553     {}
26554 
26555     VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26556 
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26557     CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
26558     {
26559       *this = rhs;
26560     }
26561 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26562 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet26563     CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
26564     {
26565       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyDescriptorSet const *>( &rhs );
26566       return *this;
26567     }
26568 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet26569     CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
26570     {
26571       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyDescriptorSet ) );
26572       return *this;
26573     }
26574 
setPNextVULKAN_HPP_NAMESPACE::CopyDescriptorSet26575     CopyDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26576     {
26577       pNext = pNext_;
26578       return *this;
26579     }
26580 
setSrcSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26581     CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT
26582     {
26583       srcSet = srcSet_;
26584       return *this;
26585     }
26586 
setSrcBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet26587     CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT
26588     {
26589       srcBinding = srcBinding_;
26590       return *this;
26591     }
26592 
setSrcArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet26593     CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT
26594     {
26595       srcArrayElement = srcArrayElement_;
26596       return *this;
26597     }
26598 
setDstSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet26599     CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
26600     {
26601       dstSet = dstSet_;
26602       return *this;
26603     }
26604 
setDstBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet26605     CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
26606     {
26607       dstBinding = dstBinding_;
26608       return *this;
26609     }
26610 
setDstArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet26611     CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
26612     {
26613       dstArrayElement = dstArrayElement_;
26614       return *this;
26615     }
26616 
setDescriptorCountVULKAN_HPP_NAMESPACE::CopyDescriptorSet26617     CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
26618     {
26619       descriptorCount = descriptorCount_;
26620       return *this;
26621     }
26622 
26623 
operator VkCopyDescriptorSet const&VULKAN_HPP_NAMESPACE::CopyDescriptorSet26624     operator VkCopyDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
26625     {
26626       return *reinterpret_cast<const VkCopyDescriptorSet*>( this );
26627     }
26628 
operator VkCopyDescriptorSet&VULKAN_HPP_NAMESPACE::CopyDescriptorSet26629     operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
26630     {
26631       return *reinterpret_cast<VkCopyDescriptorSet*>( this );
26632     }
26633 
26634 
26635 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26636     auto operator<=>( CopyDescriptorSet const& ) const = default;
26637 #else
operator ==VULKAN_HPP_NAMESPACE::CopyDescriptorSet26638     bool operator==( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
26639     {
26640       return ( sType == rhs.sType )
26641           && ( pNext == rhs.pNext )
26642           && ( srcSet == rhs.srcSet )
26643           && ( srcBinding == rhs.srcBinding )
26644           && ( srcArrayElement == rhs.srcArrayElement )
26645           && ( dstSet == rhs.dstSet )
26646           && ( dstBinding == rhs.dstBinding )
26647           && ( dstArrayElement == rhs.dstArrayElement )
26648           && ( descriptorCount == rhs.descriptorCount );
26649     }
26650 
operator !=VULKAN_HPP_NAMESPACE::CopyDescriptorSet26651     bool operator!=( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
26652     {
26653       return !operator==( rhs );
26654     }
26655 #endif
26656 
26657 
26658 
26659   public:
26660     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet;
26661     const void* pNext = {};
26662     VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {};
26663     uint32_t srcBinding = {};
26664     uint32_t srcArrayElement = {};
26665     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
26666     uint32_t dstBinding = {};
26667     uint32_t dstArrayElement = {};
26668     uint32_t descriptorCount = {};
26669 
26670   };
26671   static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" );
26672   static_assert( std::is_standard_layout<CopyDescriptorSet>::value, "struct wrapper is not a standard layout!" );
26673 
26674   template <>
26675   struct CppType<StructureType, StructureType::eCopyDescriptorSet>
26676   {
26677     using Type = CopyDescriptorSet;
26678   };
26679 
26680   struct ImageCopy2KHR
26681   {
26682     static const bool allowDuplicate = false;
26683     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2KHR;
26684 
26685 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopy2KHRVULKAN_HPP_NAMESPACE::ImageCopy2KHR26686     VULKAN_HPP_CONSTEXPR ImageCopy2KHR(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT
26687     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
26688     {}
26689 
26690     VULKAN_HPP_CONSTEXPR ImageCopy2KHR( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26691 
ImageCopy2KHRVULKAN_HPP_NAMESPACE::ImageCopy2KHR26692     ImageCopy2KHR( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26693     {
26694       *this = rhs;
26695     }
26696 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26697 
operator =VULKAN_HPP_NAMESPACE::ImageCopy2KHR26698     ImageCopy2KHR & operator=( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26699     {
26700       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy2KHR const *>( &rhs );
26701       return *this;
26702     }
26703 
operator =VULKAN_HPP_NAMESPACE::ImageCopy2KHR26704     ImageCopy2KHR & operator=( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26705     {
26706       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageCopy2KHR ) );
26707       return *this;
26708     }
26709 
setPNextVULKAN_HPP_NAMESPACE::ImageCopy2KHR26710     ImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26711     {
26712       pNext = pNext_;
26713       return *this;
26714     }
26715 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy2KHR26716     ImageCopy2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
26717     {
26718       srcSubresource = srcSubresource_;
26719       return *this;
26720     }
26721 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy2KHR26722     ImageCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
26723     {
26724       srcOffset = srcOffset_;
26725       return *this;
26726     }
26727 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy2KHR26728     ImageCopy2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
26729     {
26730       dstSubresource = dstSubresource_;
26731       return *this;
26732     }
26733 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy2KHR26734     ImageCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
26735     {
26736       dstOffset = dstOffset_;
26737       return *this;
26738     }
26739 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy2KHR26740     ImageCopy2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
26741     {
26742       extent = extent_;
26743       return *this;
26744     }
26745 
26746 
operator VkImageCopy2KHR const&VULKAN_HPP_NAMESPACE::ImageCopy2KHR26747     operator VkImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT
26748     {
26749       return *reinterpret_cast<const VkImageCopy2KHR*>( this );
26750     }
26751 
operator VkImageCopy2KHR&VULKAN_HPP_NAMESPACE::ImageCopy2KHR26752     operator VkImageCopy2KHR &() VULKAN_HPP_NOEXCEPT
26753     {
26754       return *reinterpret_cast<VkImageCopy2KHR*>( this );
26755     }
26756 
26757 
26758 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26759     auto operator<=>( ImageCopy2KHR const& ) const = default;
26760 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy2KHR26761     bool operator==( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26762     {
26763       return ( sType == rhs.sType )
26764           && ( pNext == rhs.pNext )
26765           && ( srcSubresource == rhs.srcSubresource )
26766           && ( srcOffset == rhs.srcOffset )
26767           && ( dstSubresource == rhs.dstSubresource )
26768           && ( dstOffset == rhs.dstOffset )
26769           && ( extent == rhs.extent );
26770     }
26771 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy2KHR26772     bool operator!=( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26773     {
26774       return !operator==( rhs );
26775     }
26776 #endif
26777 
26778 
26779 
26780   public:
26781     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2KHR;
26782     const void* pNext = {};
26783     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
26784     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
26785     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
26786     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
26787     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
26788 
26789   };
26790   static_assert( sizeof( ImageCopy2KHR ) == sizeof( VkImageCopy2KHR ), "struct and wrapper have different size!" );
26791   static_assert( std::is_standard_layout<ImageCopy2KHR>::value, "struct wrapper is not a standard layout!" );
26792 
26793   template <>
26794   struct CppType<StructureType, StructureType::eImageCopy2KHR>
26795   {
26796     using Type = ImageCopy2KHR;
26797   };
26798 
26799   struct CopyImageInfo2KHR
26800   {
26801     static const bool allowDuplicate = false;
26802     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2KHR;
26803 
26804 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26805     VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT
26806     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26807     {}
26808 
26809     VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26810 
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26811     CopyImageInfo2KHR( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26812     {
26813       *this = rhs;
26814     }
26815 
26816 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyImageInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26817     CopyImageInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2KHR> const & regions_ )
26818     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26819     {}
26820 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26821 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26822 
operator =VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26823     CopyImageInfo2KHR & operator=( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26824     {
26825       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR const *>( &rhs );
26826       return *this;
26827     }
26828 
operator =VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26829     CopyImageInfo2KHR & operator=( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26830     {
26831       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyImageInfo2KHR ) );
26832       return *this;
26833     }
26834 
setPNextVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26835     CopyImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26836     {
26837       pNext = pNext_;
26838       return *this;
26839     }
26840 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26841     CopyImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
26842     {
26843       srcImage = srcImage_;
26844       return *this;
26845     }
26846 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26847     CopyImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
26848     {
26849       srcImageLayout = srcImageLayout_;
26850       return *this;
26851     }
26852 
setDstImageVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26853     CopyImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
26854     {
26855       dstImage = dstImage_;
26856       return *this;
26857     }
26858 
setDstImageLayoutVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26859     CopyImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
26860     {
26861       dstImageLayout = dstImageLayout_;
26862       return *this;
26863     }
26864 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26865     CopyImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
26866     {
26867       regionCount = regionCount_;
26868       return *this;
26869     }
26870 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26871     CopyImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
26872     {
26873       pRegions = pRegions_;
26874       return *this;
26875     }
26876 
26877 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26878     CopyImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
26879     {
26880       regionCount = static_cast<uint32_t>( regions_.size() );
26881       pRegions = regions_.data();
26882       return *this;
26883     }
26884 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26885 
26886 
operator VkCopyImageInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26887     operator VkCopyImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
26888     {
26889       return *reinterpret_cast<const VkCopyImageInfo2KHR*>( this );
26890     }
26891 
operator VkCopyImageInfo2KHR&VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26892     operator VkCopyImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
26893     {
26894       return *reinterpret_cast<VkCopyImageInfo2KHR*>( this );
26895     }
26896 
26897 
26898 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
26899     auto operator<=>( CopyImageInfo2KHR const& ) const = default;
26900 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26901     bool operator==( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26902     {
26903       return ( sType == rhs.sType )
26904           && ( pNext == rhs.pNext )
26905           && ( srcImage == rhs.srcImage )
26906           && ( srcImageLayout == rhs.srcImageLayout )
26907           && ( dstImage == rhs.dstImage )
26908           && ( dstImageLayout == rhs.dstImageLayout )
26909           && ( regionCount == rhs.regionCount )
26910           && ( pRegions == rhs.pRegions );
26911     }
26912 
operator !=VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR26913     bool operator!=( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
26914     {
26915       return !operator==( rhs );
26916     }
26917 #endif
26918 
26919 
26920 
26921   public:
26922     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2KHR;
26923     const void* pNext = {};
26924     VULKAN_HPP_NAMESPACE::Image srcImage = {};
26925     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26926     VULKAN_HPP_NAMESPACE::Image dstImage = {};
26927     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
26928     uint32_t regionCount = {};
26929     const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions = {};
26930 
26931   };
26932   static_assert( sizeof( CopyImageInfo2KHR ) == sizeof( VkCopyImageInfo2KHR ), "struct and wrapper have different size!" );
26933   static_assert( std::is_standard_layout<CopyImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
26934 
26935   template <>
26936   struct CppType<StructureType, StructureType::eCopyImageInfo2KHR>
26937   {
26938     using Type = CopyImageInfo2KHR;
26939   };
26940 
26941   struct CopyImageToBufferInfo2KHR
26942   {
26943     static const bool allowDuplicate = false;
26944     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2KHR;
26945 
26946 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26947     VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT
26948     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
26949     {}
26950 
26951     VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
26952 
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26953     CopyImageToBufferInfo2KHR( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26954     {
26955       *this = rhs;
26956     }
26957 
26958 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
CopyImageToBufferInfo2KHRVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26959     CopyImageToBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ )
26960     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
26961     {}
26962 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
26963 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
26964 
operator =VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26965     CopyImageToBufferInfo2KHR & operator=( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26966     {
26967       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR const *>( &rhs );
26968       return *this;
26969     }
26970 
operator =VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26971     CopyImageToBufferInfo2KHR & operator=( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
26972     {
26973       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyImageToBufferInfo2KHR ) );
26974       return *this;
26975     }
26976 
setPNextVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26977     CopyImageToBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
26978     {
26979       pNext = pNext_;
26980       return *this;
26981     }
26982 
setSrcImageVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26983     CopyImageToBufferInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
26984     {
26985       srcImage = srcImage_;
26986       return *this;
26987     }
26988 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26989     CopyImageToBufferInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
26990     {
26991       srcImageLayout = srcImageLayout_;
26992       return *this;
26993     }
26994 
setDstBufferVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR26995     CopyImageToBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
26996     {
26997       dstBuffer = dstBuffer_;
26998       return *this;
26999     }
27000 
setRegionCountVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27001     CopyImageToBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
27002     {
27003       regionCount = regionCount_;
27004       return *this;
27005     }
27006 
setPRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27007     CopyImageToBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
27008     {
27009       pRegions = pRegions_;
27010       return *this;
27011     }
27012 
27013 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27014     CopyImageToBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
27015     {
27016       regionCount = static_cast<uint32_t>( regions_.size() );
27017       pRegions = regions_.data();
27018       return *this;
27019     }
27020 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27021 
27022 
operator VkCopyImageToBufferInfo2KHR const&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27023     operator VkCopyImageToBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
27024     {
27025       return *reinterpret_cast<const VkCopyImageToBufferInfo2KHR*>( this );
27026     }
27027 
operator VkCopyImageToBufferInfo2KHR&VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27028     operator VkCopyImageToBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT
27029     {
27030       return *reinterpret_cast<VkCopyImageToBufferInfo2KHR*>( this );
27031     }
27032 
27033 
27034 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27035     auto operator<=>( CopyImageToBufferInfo2KHR const& ) const = default;
27036 #else
operator ==VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27037     bool operator==( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27038     {
27039       return ( sType == rhs.sType )
27040           && ( pNext == rhs.pNext )
27041           && ( srcImage == rhs.srcImage )
27042           && ( srcImageLayout == rhs.srcImageLayout )
27043           && ( dstBuffer == rhs.dstBuffer )
27044           && ( regionCount == rhs.regionCount )
27045           && ( pRegions == rhs.pRegions );
27046     }
27047 
operator !=VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR27048     bool operator!=( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27049     {
27050       return !operator==( rhs );
27051     }
27052 #endif
27053 
27054 
27055 
27056   public:
27057     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2KHR;
27058     const void* pNext = {};
27059     VULKAN_HPP_NAMESPACE::Image srcImage = {};
27060     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
27061     VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
27062     uint32_t regionCount = {};
27063     const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {};
27064 
27065   };
27066   static_assert( sizeof( CopyImageToBufferInfo2KHR ) == sizeof( VkCopyImageToBufferInfo2KHR ), "struct and wrapper have different size!" );
27067   static_assert( std::is_standard_layout<CopyImageToBufferInfo2KHR>::value, "struct wrapper is not a standard layout!" );
27068 
27069   template <>
27070   struct CppType<StructureType, StructureType::eCopyImageToBufferInfo2KHR>
27071   {
27072     using Type = CopyImageToBufferInfo2KHR;
27073   };
27074 
27075 #ifdef VK_ENABLE_BETA_EXTENSIONS
27076   struct CopyMemoryToAccelerationStructureInfoKHR
27077   {
27078     static const bool allowDuplicate = false;
27079     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
27080 
27081 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27082     CopyMemoryToAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT
27083     : src( src_ ), dst( dst_ ), mode( mode_ )
27084     {}
27085 
27086     CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27087 
CopyMemoryToAccelerationStructureInfoKHRVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27088     CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27089     {
27090       *this = rhs;
27091     }
27092 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27093 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27094     CopyMemoryToAccelerationStructureInfoKHR & operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27095     {
27096       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs );
27097       return *this;
27098     }
27099 
operator =VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27100     CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27101     {
27102       memcpy( static_cast<void *>( this ), &rhs, sizeof( CopyMemoryToAccelerationStructureInfoKHR ) );
27103       return *this;
27104     }
27105 
setPNextVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27106     CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27107     {
27108       pNext = pNext_;
27109       return *this;
27110     }
27111 
setSrcVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27112     CopyMemoryToAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
27113     {
27114       src = src_;
27115       return *this;
27116     }
27117 
setDstVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27118     CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
27119     {
27120       dst = dst_;
27121       return *this;
27122     }
27123 
setModeVULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27124     CopyMemoryToAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
27125     {
27126       mode = mode_;
27127       return *this;
27128     }
27129 
27130 
operator VkCopyMemoryToAccelerationStructureInfoKHR const&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27131     operator VkCopyMemoryToAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT
27132     {
27133       return *reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
27134     }
27135 
operator VkCopyMemoryToAccelerationStructureInfoKHR&VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR27136     operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
27137     {
27138       return *reinterpret_cast<VkCopyMemoryToAccelerationStructureInfoKHR*>( this );
27139     }
27140 
27141 
27142 
27143 
27144   public:
27145     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
27146     const void* pNext = {};
27147     VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
27148     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
27149     VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
27150 
27151   };
27152   static_assert( sizeof( CopyMemoryToAccelerationStructureInfoKHR ) == sizeof( VkCopyMemoryToAccelerationStructureInfoKHR ), "struct and wrapper have different size!" );
27153   static_assert( std::is_standard_layout<CopyMemoryToAccelerationStructureInfoKHR>::value, "struct wrapper is not a standard layout!" );
27154 
27155   template <>
27156   struct CppType<StructureType, StructureType::eCopyMemoryToAccelerationStructureInfoKHR>
27157   {
27158     using Type = CopyMemoryToAccelerationStructureInfoKHR;
27159   };
27160 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
27161 
27162 #ifdef VK_USE_PLATFORM_WIN32_KHR
27163   struct D3D12FenceSubmitInfoKHR
27164   {
27165     static const bool allowDuplicate = false;
27166     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR;
27167 
27168 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27169     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR(uint32_t waitSemaphoreValuesCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValuesCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT
27170     : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValuesCount( signalSemaphoreValuesCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
27171     {}
27172 
27173     VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27174 
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27175     D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27176     {
27177       *this = rhs;
27178     }
27179 
27180 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27181     D3D12FenceSubmitInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {} )
27182     : waitSemaphoreValuesCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValuesCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
27183     {}
27184 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27185 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27186 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27187     D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27188     {
27189       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const *>( &rhs );
27190       return *this;
27191     }
27192 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27193     D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
27194     {
27195       memcpy( static_cast<void *>( this ), &rhs, sizeof( D3D12FenceSubmitInfoKHR ) );
27196       return *this;
27197     }
27198 
setPNextVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27199     D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27200     {
27201       pNext = pNext_;
27202       return *this;
27203     }
27204 
setWaitSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27205     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
27206     {
27207       waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
27208       return *this;
27209     }
27210 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27211     D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
27212     {
27213       pWaitSemaphoreValues = pWaitSemaphoreValues_;
27214       return *this;
27215     }
27216 
27217 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27218     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
27219     {
27220       waitSemaphoreValuesCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
27221       pWaitSemaphoreValues = waitSemaphoreValues_.data();
27222       return *this;
27223     }
27224 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27225 
setSignalSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27226     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
27227     {
27228       signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
27229       return *this;
27230     }
27231 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27232     D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
27233     {
27234       pSignalSemaphoreValues = pSignalSemaphoreValues_;
27235       return *this;
27236     }
27237 
27238 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27239     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
27240     {
27241       signalSemaphoreValuesCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
27242       pSignalSemaphoreValues = signalSemaphoreValues_.data();
27243       return *this;
27244     }
27245 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27246 
27247 
operator VkD3D12FenceSubmitInfoKHR const&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27248     operator VkD3D12FenceSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
27249     {
27250       return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>( this );
27251     }
27252 
operator VkD3D12FenceSubmitInfoKHR&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27253     operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
27254     {
27255       return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>( this );
27256     }
27257 
27258 
27259 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27260     auto operator<=>( D3D12FenceSubmitInfoKHR const& ) const = default;
27261 #else
operator ==VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27262     bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27263     {
27264       return ( sType == rhs.sType )
27265           && ( pNext == rhs.pNext )
27266           && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount )
27267           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
27268           && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount )
27269           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
27270     }
27271 
operator !=VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR27272     bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
27273     {
27274       return !operator==( rhs );
27275     }
27276 #endif
27277 
27278 
27279 
27280   public:
27281     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
27282     const void* pNext = {};
27283     uint32_t waitSemaphoreValuesCount = {};
27284     const uint64_t* pWaitSemaphoreValues = {};
27285     uint32_t signalSemaphoreValuesCount = {};
27286     const uint64_t* pSignalSemaphoreValues = {};
27287 
27288   };
27289   static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" );
27290   static_assert( std::is_standard_layout<D3D12FenceSubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
27291 
27292   template <>
27293   struct CppType<StructureType, StructureType::eD3D12FenceSubmitInfoKHR>
27294   {
27295     using Type = D3D12FenceSubmitInfoKHR;
27296   };
27297 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
27298 
27299   struct DebugMarkerMarkerInfoEXT
27300   {
27301     static const bool allowDuplicate = false;
27302     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT;
27303 
27304 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27305     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT(const char* pMarkerName_ = {}, std::array<float,4> const& color_ = {}) VULKAN_HPP_NOEXCEPT
27306     : pMarkerName( pMarkerName_ ), color( color_ )
27307     {}
27308 
27309     VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27310 
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27311     DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27312     {
27313       *this = rhs;
27314     }
27315 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27316 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27317     DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27318     {
27319       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const *>( &rhs );
27320       return *this;
27321     }
27322 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27323     DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27324     {
27325       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugMarkerMarkerInfoEXT ) );
27326       return *this;
27327     }
27328 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27329     DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27330     {
27331       pNext = pNext_;
27332       return *this;
27333     }
27334 
setPMarkerNameVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27335     DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ ) VULKAN_HPP_NOEXCEPT
27336     {
27337       pMarkerName = pMarkerName_;
27338       return *this;
27339     }
27340 
setColorVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27341     DebugMarkerMarkerInfoEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
27342     {
27343       color = color_;
27344       return *this;
27345     }
27346 
27347 
operator VkDebugMarkerMarkerInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27348     operator VkDebugMarkerMarkerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27349     {
27350       return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( this );
27351     }
27352 
operator VkDebugMarkerMarkerInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27353     operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
27354     {
27355       return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>( this );
27356     }
27357 
27358 
27359 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27360     auto operator<=>( DebugMarkerMarkerInfoEXT const& ) const = default;
27361 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27362     bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27363     {
27364       return ( sType == rhs.sType )
27365           && ( pNext == rhs.pNext )
27366           && ( pMarkerName == rhs.pMarkerName )
27367           && ( color == rhs.color );
27368     }
27369 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT27370     bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27371     {
27372       return !operator==( rhs );
27373     }
27374 #endif
27375 
27376 
27377 
27378   public:
27379     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
27380     const void* pNext = {};
27381     const char* pMarkerName = {};
27382     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
27383 
27384   };
27385   static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" );
27386   static_assert( std::is_standard_layout<DebugMarkerMarkerInfoEXT>::value, "struct wrapper is not a standard layout!" );
27387 
27388   template <>
27389   struct CppType<StructureType, StructureType::eDebugMarkerMarkerInfoEXT>
27390   {
27391     using Type = DebugMarkerMarkerInfoEXT;
27392   };
27393 
27394   struct DebugMarkerObjectNameInfoEXT
27395   {
27396     static const bool allowDuplicate = false;
27397     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT;
27398 
27399 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27400     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT
27401     : objectType( objectType_ ), object( object_ ), pObjectName( pObjectName_ )
27402     {}
27403 
27404     VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27405 
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27406     DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27407     {
27408       *this = rhs;
27409     }
27410 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27411 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27412     DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27413     {
27414       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const *>( &rhs );
27415       return *this;
27416     }
27417 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27418     DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27419     {
27420       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugMarkerObjectNameInfoEXT ) );
27421       return *this;
27422     }
27423 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27424     DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27425     {
27426       pNext = pNext_;
27427       return *this;
27428     }
27429 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27430     DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
27431     {
27432       objectType = objectType_;
27433       return *this;
27434     }
27435 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27436     DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
27437     {
27438       object = object_;
27439       return *this;
27440     }
27441 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27442     DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
27443     {
27444       pObjectName = pObjectName_;
27445       return *this;
27446     }
27447 
27448 
operator VkDebugMarkerObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27449     operator VkDebugMarkerObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27450     {
27451       return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( this );
27452     }
27453 
operator VkDebugMarkerObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27454     operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
27455     {
27456       return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>( this );
27457     }
27458 
27459 
27460 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27461     auto operator<=>( DebugMarkerObjectNameInfoEXT const& ) const = default;
27462 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27463     bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27464     {
27465       return ( sType == rhs.sType )
27466           && ( pNext == rhs.pNext )
27467           && ( objectType == rhs.objectType )
27468           && ( object == rhs.object )
27469           && ( pObjectName == rhs.pObjectName );
27470     }
27471 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT27472     bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27473     {
27474       return !operator==( rhs );
27475     }
27476 #endif
27477 
27478 
27479 
27480   public:
27481     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
27482     const void* pNext = {};
27483     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
27484     uint64_t object = {};
27485     const char* pObjectName = {};
27486 
27487   };
27488   static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" );
27489   static_assert( std::is_standard_layout<DebugMarkerObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
27490 
27491   template <>
27492   struct CppType<StructureType, StructureType::eDebugMarkerObjectNameInfoEXT>
27493   {
27494     using Type = DebugMarkerObjectNameInfoEXT;
27495   };
27496 
27497   struct DebugMarkerObjectTagInfoEXT
27498   {
27499     static const bool allowDuplicate = false;
27500     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT;
27501 
27502 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27503     VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, uint64_t tagName_ = {}, size_t tagSize_ = {}, const void* pTag_ = {}) VULKAN_HPP_NOEXCEPT
27504     : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
27505     {}
27506 
27507     VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27508 
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27509     DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27510     {
27511       *this = rhs;
27512     }
27513 
27514 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27515     template <typename T>
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27516     DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, uint64_t object_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ )
27517     : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
27518     {}
27519 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27520 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27521 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27522     DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27523     {
27524       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const *>( &rhs );
27525       return *this;
27526     }
27527 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27528     DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27529     {
27530       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugMarkerObjectTagInfoEXT ) );
27531       return *this;
27532     }
27533 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27534     DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27535     {
27536       pNext = pNext_;
27537       return *this;
27538     }
27539 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27540     DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
27541     {
27542       objectType = objectType_;
27543       return *this;
27544     }
27545 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27546     DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
27547     {
27548       object = object_;
27549       return *this;
27550     }
27551 
setTagNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27552     DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
27553     {
27554       tagName = tagName_;
27555       return *this;
27556     }
27557 
setTagSizeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27558     DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
27559     {
27560       tagSize = tagSize_;
27561       return *this;
27562     }
27563 
setPTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27564     DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
27565     {
27566       pTag = pTag_;
27567       return *this;
27568     }
27569 
27570 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27571     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27572     DebugMarkerObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
27573     {
27574       tagSize = tag_.size() * sizeof(T);
27575       pTag = tag_.data();
27576       return *this;
27577     }
27578 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27579 
27580 
operator VkDebugMarkerObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27581     operator VkDebugMarkerObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27582     {
27583       return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( this );
27584     }
27585 
operator VkDebugMarkerObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27586     operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
27587     {
27588       return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>( this );
27589     }
27590 
27591 
27592 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27593     auto operator<=>( DebugMarkerObjectTagInfoEXT const& ) const = default;
27594 #else
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27595     bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27596     {
27597       return ( sType == rhs.sType )
27598           && ( pNext == rhs.pNext )
27599           && ( objectType == rhs.objectType )
27600           && ( object == rhs.object )
27601           && ( tagName == rhs.tagName )
27602           && ( tagSize == rhs.tagSize )
27603           && ( pTag == rhs.pTag );
27604     }
27605 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT27606     bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27607     {
27608       return !operator==( rhs );
27609     }
27610 #endif
27611 
27612 
27613 
27614   public:
27615     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
27616     const void* pNext = {};
27617     VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
27618     uint64_t object = {};
27619     uint64_t tagName = {};
27620     size_t tagSize = {};
27621     const void* pTag = {};
27622 
27623   };
27624   static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" );
27625   static_assert( std::is_standard_layout<DebugMarkerObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
27626 
27627   template <>
27628   struct CppType<StructureType, StructureType::eDebugMarkerObjectTagInfoEXT>
27629   {
27630     using Type = DebugMarkerObjectTagInfoEXT;
27631   };
27632 
27633   struct DebugReportCallbackCreateInfoEXT
27634   {
27635     static const bool allowDuplicate = false;
27636     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT;
27637 
27638 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27639     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {}, PFN_vkDebugReportCallbackEXT pfnCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
27640     : flags( flags_ ), pfnCallback( pfnCallback_ ), pUserData( pUserData_ )
27641     {}
27642 
27643     VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27644 
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27645     DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27646     {
27647       *this = rhs;
27648     }
27649 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27650 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27651     DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27652     {
27653       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const *>( &rhs );
27654       return *this;
27655     }
27656 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27657     DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27658     {
27659       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugReportCallbackCreateInfoEXT ) );
27660       return *this;
27661     }
27662 
setPNextVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27663     DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27664     {
27665       pNext = pNext_;
27666       return *this;
27667     }
27668 
setFlagsVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27669     DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
27670     {
27671       flags = flags_;
27672       return *this;
27673     }
27674 
setPfnCallbackVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27675     DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT
27676     {
27677       pfnCallback = pfnCallback_;
27678       return *this;
27679     }
27680 
setPUserDataVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27681     DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
27682     {
27683       pUserData = pUserData_;
27684       return *this;
27685     }
27686 
27687 
operator VkDebugReportCallbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27688     operator VkDebugReportCallbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27689     {
27690       return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( this );
27691     }
27692 
operator VkDebugReportCallbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27693     operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
27694     {
27695       return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>( this );
27696     }
27697 
27698 
27699 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27700     auto operator<=>( DebugReportCallbackCreateInfoEXT const& ) const = default;
27701 #else
operator ==VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27702     bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27703     {
27704       return ( sType == rhs.sType )
27705           && ( pNext == rhs.pNext )
27706           && ( flags == rhs.flags )
27707           && ( pfnCallback == rhs.pfnCallback )
27708           && ( pUserData == rhs.pUserData );
27709     }
27710 
operator !=VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT27711     bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27712     {
27713       return !operator==( rhs );
27714     }
27715 #endif
27716 
27717 
27718 
27719   public:
27720     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
27721     const void* pNext = {};
27722     VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {};
27723     PFN_vkDebugReportCallbackEXT pfnCallback = {};
27724     void* pUserData = {};
27725 
27726   };
27727   static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" );
27728   static_assert( std::is_standard_layout<DebugReportCallbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
27729 
27730   template <>
27731   struct CppType<StructureType, StructureType::eDebugReportCallbackCreateInfoEXT>
27732   {
27733     using Type = DebugReportCallbackCreateInfoEXT;
27734   };
27735 
27736   struct DebugUtilsLabelEXT
27737   {
27738     static const bool allowDuplicate = false;
27739     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT;
27740 
27741 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27742     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT(const char* pLabelName_ = {}, std::array<float,4> const& color_ = {}) VULKAN_HPP_NOEXCEPT
27743     : pLabelName( pLabelName_ ), color( color_ )
27744     {}
27745 
27746     VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27747 
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27748     DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27749     {
27750       *this = rhs;
27751     }
27752 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27753 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27754     DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27755     {
27756       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const *>( &rhs );
27757       return *this;
27758     }
27759 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27760     DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27761     {
27762       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsLabelEXT ) );
27763       return *this;
27764     }
27765 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27766     DebugUtilsLabelEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27767     {
27768       pNext = pNext_;
27769       return *this;
27770     }
27771 
setPLabelNameVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27772     DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ ) VULKAN_HPP_NOEXCEPT
27773     {
27774       pLabelName = pLabelName_;
27775       return *this;
27776     }
27777 
setColorVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27778     DebugUtilsLabelEXT & setColor( std::array<float,4> color_ ) VULKAN_HPP_NOEXCEPT
27779     {
27780       color = color_;
27781       return *this;
27782     }
27783 
27784 
operator VkDebugUtilsLabelEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27785     operator VkDebugUtilsLabelEXT const&() const VULKAN_HPP_NOEXCEPT
27786     {
27787       return *reinterpret_cast<const VkDebugUtilsLabelEXT*>( this );
27788     }
27789 
operator VkDebugUtilsLabelEXT&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27790     operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
27791     {
27792       return *reinterpret_cast<VkDebugUtilsLabelEXT*>( this );
27793     }
27794 
27795 
27796 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27797     auto operator<=>( DebugUtilsLabelEXT const& ) const = default;
27798 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27799     bool operator==( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27800     {
27801       return ( sType == rhs.sType )
27802           && ( pNext == rhs.pNext )
27803           && ( pLabelName == rhs.pLabelName )
27804           && ( color == rhs.color );
27805     }
27806 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT27807     bool operator!=( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27808     {
27809       return !operator==( rhs );
27810     }
27811 #endif
27812 
27813 
27814 
27815   public:
27816     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT;
27817     const void* pNext = {};
27818     const char* pLabelName = {};
27819     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
27820 
27821   };
27822   static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" );
27823   static_assert( std::is_standard_layout<DebugUtilsLabelEXT>::value, "struct wrapper is not a standard layout!" );
27824 
27825   template <>
27826   struct CppType<StructureType, StructureType::eDebugUtilsLabelEXT>
27827   {
27828     using Type = DebugUtilsLabelEXT;
27829   };
27830 
27831   struct DebugUtilsObjectNameInfoEXT
27832   {
27833     static const bool allowDuplicate = false;
27834     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT;
27835 
27836 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27837     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT
27838     : objectType( objectType_ ), objectHandle( objectHandle_ ), pObjectName( pObjectName_ )
27839     {}
27840 
27841     VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27842 
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27843     DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27844     {
27845       *this = rhs;
27846     }
27847 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27848 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27849     DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27850     {
27851       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const *>( &rhs );
27852       return *this;
27853     }
27854 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27855     DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27856     {
27857       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsObjectNameInfoEXT ) );
27858       return *this;
27859     }
27860 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27861     DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27862     {
27863       pNext = pNext_;
27864       return *this;
27865     }
27866 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27867     DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
27868     {
27869       objectType = objectType_;
27870       return *this;
27871     }
27872 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27873     DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
27874     {
27875       objectHandle = objectHandle_;
27876       return *this;
27877     }
27878 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27879     DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT
27880     {
27881       pObjectName = pObjectName_;
27882       return *this;
27883     }
27884 
27885 
operator VkDebugUtilsObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27886     operator VkDebugUtilsObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT
27887     {
27888       return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( this );
27889     }
27890 
operator VkDebugUtilsObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27891     operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
27892     {
27893       return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>( this );
27894     }
27895 
27896 
27897 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
27898     auto operator<=>( DebugUtilsObjectNameInfoEXT const& ) const = default;
27899 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27900     bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27901     {
27902       return ( sType == rhs.sType )
27903           && ( pNext == rhs.pNext )
27904           && ( objectType == rhs.objectType )
27905           && ( objectHandle == rhs.objectHandle )
27906           && ( pObjectName == rhs.pObjectName );
27907     }
27908 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT27909     bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
27910     {
27911       return !operator==( rhs );
27912     }
27913 #endif
27914 
27915 
27916 
27917   public:
27918     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
27919     const void* pNext = {};
27920     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
27921     uint64_t objectHandle = {};
27922     const char* pObjectName = {};
27923 
27924   };
27925   static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" );
27926   static_assert( std::is_standard_layout<DebugUtilsObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
27927 
27928   template <>
27929   struct CppType<StructureType, StructureType::eDebugUtilsObjectNameInfoEXT>
27930   {
27931     using Type = DebugUtilsObjectNameInfoEXT;
27932   };
27933 
27934   struct DebugUtilsMessengerCallbackDataEXT
27935   {
27936     static const bool allowDuplicate = false;
27937     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
27938 
27939 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27940     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = {}, const char* pMessageIdName_ = {}, int32_t messageIdNumber_ = {}, const char* pMessage_ = {}, uint32_t queueLabelCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ = {}, uint32_t cmdBufLabelCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ = {}, uint32_t objectCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ = {}) VULKAN_HPP_NOEXCEPT
27941     : flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( queueLabelCount_ ), pQueueLabels( pQueueLabels_ ), cmdBufLabelCount( cmdBufLabelCount_ ), pCmdBufLabels( pCmdBufLabels_ ), objectCount( objectCount_ ), pObjects( pObjects_ )
27942     {}
27943 
27944     VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
27945 
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27946     DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27947     {
27948       *this = rhs;
27949     }
27950 
27951 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27952     DebugUtilsMessengerCallbackDataEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_, const char* pMessageIdName_, int32_t messageIdNumber_, const char* pMessage_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ = {} )
27953     : flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( static_cast<uint32_t>( queueLabels_.size() ) ), pQueueLabels( queueLabels_.data() ), cmdBufLabelCount( static_cast<uint32_t>( cmdBufLabels_.size() ) ), pCmdBufLabels( cmdBufLabels_.data() ), objectCount( static_cast<uint32_t>( objects_.size() ) ), pObjects( objects_.data() )
27954     {}
27955 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
27956 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
27957 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27958     DebugUtilsMessengerCallbackDataEXT & operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27959     {
27960       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const *>( &rhs );
27961       return *this;
27962     }
27963 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27964     DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
27965     {
27966       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsMessengerCallbackDataEXT ) );
27967       return *this;
27968     }
27969 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27970     DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
27971     {
27972       pNext = pNext_;
27973       return *this;
27974     }
27975 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27976     DebugUtilsMessengerCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
27977     {
27978       flags = flags_;
27979       return *this;
27980     }
27981 
setPMessageIdNameVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27982     DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ ) VULKAN_HPP_NOEXCEPT
27983     {
27984       pMessageIdName = pMessageIdName_;
27985       return *this;
27986     }
27987 
setMessageIdNumberVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27988     DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT
27989     {
27990       messageIdNumber = messageIdNumber_;
27991       return *this;
27992     }
27993 
setPMessageVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT27994     DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ ) VULKAN_HPP_NOEXCEPT
27995     {
27996       pMessage = pMessage_;
27997       return *this;
27998     }
27999 
setQueueLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28000     DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT
28001     {
28002       queueLabelCount = queueLabelCount_;
28003       return *this;
28004     }
28005 
setPQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28006     DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
28007     {
28008       pQueueLabels = pQueueLabels_;
28009       return *this;
28010     }
28011 
28012 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28013     DebugUtilsMessengerCallbackDataEXT & setQueueLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_ ) VULKAN_HPP_NOEXCEPT
28014     {
28015       queueLabelCount = static_cast<uint32_t>( queueLabels_.size() );
28016       pQueueLabels = queueLabels_.data();
28017       return *this;
28018     }
28019 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28020 
setCmdBufLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28021     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT
28022     {
28023       cmdBufLabelCount = cmdBufLabelCount_;
28024       return *this;
28025     }
28026 
setPCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28027     DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
28028     {
28029       pCmdBufLabels = pCmdBufLabels_;
28030       return *this;
28031     }
28032 
28033 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28034     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
28035     {
28036       cmdBufLabelCount = static_cast<uint32_t>( cmdBufLabels_.size() );
28037       pCmdBufLabels = cmdBufLabels_.data();
28038       return *this;
28039     }
28040 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28041 
setObjectCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28042     DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT
28043     {
28044       objectCount = objectCount_;
28045       return *this;
28046     }
28047 
setPObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28048     DebugUtilsMessengerCallbackDataEXT & setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ ) VULKAN_HPP_NOEXCEPT
28049     {
28050       pObjects = pObjects_;
28051       return *this;
28052     }
28053 
28054 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28055     DebugUtilsMessengerCallbackDataEXT & setObjects( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ ) VULKAN_HPP_NOEXCEPT
28056     {
28057       objectCount = static_cast<uint32_t>( objects_.size() );
28058       pObjects = objects_.data();
28059       return *this;
28060     }
28061 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28062 
28063 
operator VkDebugUtilsMessengerCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28064     operator VkDebugUtilsMessengerCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT
28065     {
28066       return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( this );
28067     }
28068 
operator VkDebugUtilsMessengerCallbackDataEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28069     operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
28070     {
28071       return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>( this );
28072     }
28073 
28074 
28075 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28076     auto operator<=>( DebugUtilsMessengerCallbackDataEXT const& ) const = default;
28077 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28078     bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28079     {
28080       return ( sType == rhs.sType )
28081           && ( pNext == rhs.pNext )
28082           && ( flags == rhs.flags )
28083           && ( pMessageIdName == rhs.pMessageIdName )
28084           && ( messageIdNumber == rhs.messageIdNumber )
28085           && ( pMessage == rhs.pMessage )
28086           && ( queueLabelCount == rhs.queueLabelCount )
28087           && ( pQueueLabels == rhs.pQueueLabels )
28088           && ( cmdBufLabelCount == rhs.cmdBufLabelCount )
28089           && ( pCmdBufLabels == rhs.pCmdBufLabels )
28090           && ( objectCount == rhs.objectCount )
28091           && ( pObjects == rhs.pObjects );
28092     }
28093 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT28094     bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28095     {
28096       return !operator==( rhs );
28097     }
28098 #endif
28099 
28100 
28101 
28102   public:
28103     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
28104     const void* pNext = {};
28105     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {};
28106     const char* pMessageIdName = {};
28107     int32_t messageIdNumber = {};
28108     const char* pMessage = {};
28109     uint32_t queueLabelCount = {};
28110     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels = {};
28111     uint32_t cmdBufLabelCount = {};
28112     const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels = {};
28113     uint32_t objectCount = {};
28114     const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects = {};
28115 
28116   };
28117   static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" );
28118   static_assert( std::is_standard_layout<DebugUtilsMessengerCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
28119 
28120   template <>
28121   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCallbackDataEXT>
28122   {
28123     using Type = DebugUtilsMessengerCallbackDataEXT;
28124   };
28125 
28126   struct DebugUtilsMessengerCreateInfoEXT
28127   {
28128     static const bool allowDuplicate = true;
28129     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
28130 
28131 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28132     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = {}, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ = {}, PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
28133     : flags( flags_ ), messageSeverity( messageSeverity_ ), messageType( messageType_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
28134     {}
28135 
28136     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28137 
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28138     DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28139     {
28140       *this = rhs;
28141     }
28142 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28143 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28144     DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28145     {
28146       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const *>( &rhs );
28147       return *this;
28148     }
28149 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28150     DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28151     {
28152       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsMessengerCreateInfoEXT ) );
28153       return *this;
28154     }
28155 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28156     DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28157     {
28158       pNext = pNext_;
28159       return *this;
28160     }
28161 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28162     DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
28163     {
28164       flags = flags_;
28165       return *this;
28166     }
28167 
setMessageSeverityVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28168     DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
28169     {
28170       messageSeverity = messageSeverity_;
28171       return *this;
28172     }
28173 
setMessageTypeVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28174     DebugUtilsMessengerCreateInfoEXT & setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
28175     {
28176       messageType = messageType_;
28177       return *this;
28178     }
28179 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28180     DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
28181     {
28182       pfnUserCallback = pfnUserCallback_;
28183       return *this;
28184     }
28185 
setPUserDataVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28186     DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
28187     {
28188       pUserData = pUserData_;
28189       return *this;
28190     }
28191 
28192 
operator VkDebugUtilsMessengerCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28193     operator VkDebugUtilsMessengerCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
28194     {
28195       return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( this );
28196     }
28197 
operator VkDebugUtilsMessengerCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28198     operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
28199     {
28200       return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>( this );
28201     }
28202 
28203 
28204 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28205     auto operator<=>( DebugUtilsMessengerCreateInfoEXT const& ) const = default;
28206 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28207     bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28208     {
28209       return ( sType == rhs.sType )
28210           && ( pNext == rhs.pNext )
28211           && ( flags == rhs.flags )
28212           && ( messageSeverity == rhs.messageSeverity )
28213           && ( messageType == rhs.messageType )
28214           && ( pfnUserCallback == rhs.pfnUserCallback )
28215           && ( pUserData == rhs.pUserData );
28216     }
28217 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT28218     bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28219     {
28220       return !operator==( rhs );
28221     }
28222 #endif
28223 
28224 
28225 
28226   public:
28227     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
28228     const void* pNext = {};
28229     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {};
28230     VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {};
28231     VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {};
28232     PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {};
28233     void* pUserData = {};
28234 
28235   };
28236   static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" );
28237   static_assert( std::is_standard_layout<DebugUtilsMessengerCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
28238 
28239   template <>
28240   struct CppType<StructureType, StructureType::eDebugUtilsMessengerCreateInfoEXT>
28241   {
28242     using Type = DebugUtilsMessengerCreateInfoEXT;
28243   };
28244 
28245   struct DebugUtilsObjectTagInfoEXT
28246   {
28247     static const bool allowDuplicate = false;
28248     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT;
28249 
28250 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28251     VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, uint64_t tagName_ = {}, size_t tagSize_ = {}, const void* pTag_ = {}) VULKAN_HPP_NOEXCEPT
28252     : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ )
28253     {}
28254 
28255     VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28256 
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28257     DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28258     {
28259       *this = rhs;
28260     }
28261 
28262 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28263     template <typename T>
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28264     DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ )
28265     : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() )
28266     {}
28267 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28268 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28269 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28270     DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28271     {
28272       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const *>( &rhs );
28273       return *this;
28274     }
28275 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28276     DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
28277     {
28278       memcpy( static_cast<void *>( this ), &rhs, sizeof( DebugUtilsObjectTagInfoEXT ) );
28279       return *this;
28280     }
28281 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28282     DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28283     {
28284       pNext = pNext_;
28285       return *this;
28286     }
28287 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28288     DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
28289     {
28290       objectType = objectType_;
28291       return *this;
28292     }
28293 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28294     DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
28295     {
28296       objectHandle = objectHandle_;
28297       return *this;
28298     }
28299 
setTagNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28300     DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
28301     {
28302       tagName = tagName_;
28303       return *this;
28304     }
28305 
setTagSizeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28306     DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
28307     {
28308       tagSize = tagSize_;
28309       return *this;
28310     }
28311 
setPTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28312     DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT
28313     {
28314       pTag = pTag_;
28315       return *this;
28316     }
28317 
28318 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28319     template <typename T>
setTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28320     DebugUtilsObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
28321     {
28322       tagSize = tag_.size() * sizeof(T);
28323       pTag = tag_.data();
28324       return *this;
28325     }
28326 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
28327 
28328 
operator VkDebugUtilsObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28329     operator VkDebugUtilsObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT
28330     {
28331       return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( this );
28332     }
28333 
operator VkDebugUtilsObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28334     operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
28335     {
28336       return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>( this );
28337     }
28338 
28339 
28340 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28341     auto operator<=>( DebugUtilsObjectTagInfoEXT const& ) const = default;
28342 #else
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28343     bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28344     {
28345       return ( sType == rhs.sType )
28346           && ( pNext == rhs.pNext )
28347           && ( objectType == rhs.objectType )
28348           && ( objectHandle == rhs.objectHandle )
28349           && ( tagName == rhs.tagName )
28350           && ( tagSize == rhs.tagSize )
28351           && ( pTag == rhs.pTag );
28352     }
28353 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT28354     bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
28355     {
28356       return !operator==( rhs );
28357     }
28358 #endif
28359 
28360 
28361 
28362   public:
28363     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
28364     const void* pNext = {};
28365     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
28366     uint64_t objectHandle = {};
28367     uint64_t tagName = {};
28368     size_t tagSize = {};
28369     const void* pTag = {};
28370 
28371   };
28372   static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" );
28373   static_assert( std::is_standard_layout<DebugUtilsObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
28374 
28375   template <>
28376   struct CppType<StructureType, StructureType::eDebugUtilsObjectTagInfoEXT>
28377   {
28378     using Type = DebugUtilsObjectTagInfoEXT;
28379   };
28380 
28381   struct DedicatedAllocationBufferCreateInfoNV
28382   {
28383     static const bool allowDuplicate = false;
28384     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
28385 
28386 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28387     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
28388     : dedicatedAllocation( dedicatedAllocation_ )
28389     {}
28390 
28391     VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28392 
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28393     DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28394     {
28395       *this = rhs;
28396     }
28397 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28398 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28399     DedicatedAllocationBufferCreateInfoNV & operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28400     {
28401       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const *>( &rhs );
28402       return *this;
28403     }
28404 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28405     DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28406     {
28407       memcpy( static_cast<void *>( this ), &rhs, sizeof( DedicatedAllocationBufferCreateInfoNV ) );
28408       return *this;
28409     }
28410 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28411     DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28412     {
28413       pNext = pNext_;
28414       return *this;
28415     }
28416 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28417     DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
28418     {
28419       dedicatedAllocation = dedicatedAllocation_;
28420       return *this;
28421     }
28422 
28423 
operator VkDedicatedAllocationBufferCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28424     operator VkDedicatedAllocationBufferCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
28425     {
28426       return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>( this );
28427     }
28428 
operator VkDedicatedAllocationBufferCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28429     operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
28430     {
28431       return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>( this );
28432     }
28433 
28434 
28435 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28436     auto operator<=>( DedicatedAllocationBufferCreateInfoNV const& ) const = default;
28437 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28438     bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28439     {
28440       return ( sType == rhs.sType )
28441           && ( pNext == rhs.pNext )
28442           && ( dedicatedAllocation == rhs.dedicatedAllocation );
28443     }
28444 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV28445     bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28446     {
28447       return !operator==( rhs );
28448     }
28449 #endif
28450 
28451 
28452 
28453   public:
28454     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
28455     const void* pNext = {};
28456     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
28457 
28458   };
28459   static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" );
28460   static_assert( std::is_standard_layout<DedicatedAllocationBufferCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
28461 
28462   template <>
28463   struct CppType<StructureType, StructureType::eDedicatedAllocationBufferCreateInfoNV>
28464   {
28465     using Type = DedicatedAllocationBufferCreateInfoNV;
28466   };
28467 
28468   struct DedicatedAllocationImageCreateInfoNV
28469   {
28470     static const bool allowDuplicate = false;
28471     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV;
28472 
28473 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28474     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
28475     : dedicatedAllocation( dedicatedAllocation_ )
28476     {}
28477 
28478     VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28479 
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28480     DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28481     {
28482       *this = rhs;
28483     }
28484 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28485 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28486     DedicatedAllocationImageCreateInfoNV & operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28487     {
28488       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const *>( &rhs );
28489       return *this;
28490     }
28491 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28492     DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28493     {
28494       memcpy( static_cast<void *>( this ), &rhs, sizeof( DedicatedAllocationImageCreateInfoNV ) );
28495       return *this;
28496     }
28497 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28498     DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28499     {
28500       pNext = pNext_;
28501       return *this;
28502     }
28503 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28504     DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
28505     {
28506       dedicatedAllocation = dedicatedAllocation_;
28507       return *this;
28508     }
28509 
28510 
operator VkDedicatedAllocationImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28511     operator VkDedicatedAllocationImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
28512     {
28513       return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>( this );
28514     }
28515 
operator VkDedicatedAllocationImageCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28516     operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
28517     {
28518       return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>( this );
28519     }
28520 
28521 
28522 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28523     auto operator<=>( DedicatedAllocationImageCreateInfoNV const& ) const = default;
28524 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28525     bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28526     {
28527       return ( sType == rhs.sType )
28528           && ( pNext == rhs.pNext )
28529           && ( dedicatedAllocation == rhs.dedicatedAllocation );
28530     }
28531 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV28532     bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28533     {
28534       return !operator==( rhs );
28535     }
28536 #endif
28537 
28538 
28539 
28540   public:
28541     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
28542     const void* pNext = {};
28543     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
28544 
28545   };
28546   static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" );
28547   static_assert( std::is_standard_layout<DedicatedAllocationImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
28548 
28549   template <>
28550   struct CppType<StructureType, StructureType::eDedicatedAllocationImageCreateInfoNV>
28551   {
28552     using Type = DedicatedAllocationImageCreateInfoNV;
28553   };
28554 
28555   struct DedicatedAllocationMemoryAllocateInfoNV
28556   {
28557     static const bool allowDuplicate = false;
28558     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
28559 
28560 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28561     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
28562     : image( image_ ), buffer( buffer_ )
28563     {}
28564 
28565     VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28566 
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28567     DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28568     {
28569       *this = rhs;
28570     }
28571 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28572 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28573     DedicatedAllocationMemoryAllocateInfoNV & operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28574     {
28575       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs );
28576       return *this;
28577     }
28578 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28579     DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
28580     {
28581       memcpy( static_cast<void *>( this ), &rhs, sizeof( DedicatedAllocationMemoryAllocateInfoNV ) );
28582       return *this;
28583     }
28584 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28585     DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28586     {
28587       pNext = pNext_;
28588       return *this;
28589     }
28590 
setImageVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28591     DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
28592     {
28593       image = image_;
28594       return *this;
28595     }
28596 
setBufferVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28597     DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28598     {
28599       buffer = buffer_;
28600       return *this;
28601     }
28602 
28603 
operator VkDedicatedAllocationMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28604     operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
28605     {
28606       return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
28607     }
28608 
operator VkDedicatedAllocationMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28609     operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
28610     {
28611       return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
28612     }
28613 
28614 
28615 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28616     auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const& ) const = default;
28617 #else
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28618     bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28619     {
28620       return ( sType == rhs.sType )
28621           && ( pNext == rhs.pNext )
28622           && ( image == rhs.image )
28623           && ( buffer == rhs.buffer );
28624     }
28625 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV28626     bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
28627     {
28628       return !operator==( rhs );
28629     }
28630 #endif
28631 
28632 
28633 
28634   public:
28635     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
28636     const void* pNext = {};
28637     VULKAN_HPP_NAMESPACE::Image image = {};
28638     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28639 
28640   };
28641   static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
28642   static_assert( std::is_standard_layout<DedicatedAllocationMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
28643 
28644   template <>
28645   struct CppType<StructureType, StructureType::eDedicatedAllocationMemoryAllocateInfoNV>
28646   {
28647     using Type = DedicatedAllocationMemoryAllocateInfoNV;
28648   };
28649 
28650 #ifdef VK_ENABLE_BETA_EXTENSIONS
28651   class DeferredOperationKHR
28652   {
28653   public:
28654     using CType = VkDeferredOperationKHR;
28655 
28656     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR;
28657     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
28658 
28659   public:
DeferredOperationKHR()28660     VULKAN_HPP_CONSTEXPR DeferredOperationKHR() VULKAN_HPP_NOEXCEPT
28661       : m_deferredOperationKHR(VK_NULL_HANDLE)
28662     {}
28663 
DeferredOperationKHR(std::nullptr_t)28664     VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28665       : m_deferredOperationKHR(VK_NULL_HANDLE)
28666     {}
28667 
DeferredOperationKHR(VkDeferredOperationKHR deferredOperationKHR)28668     VULKAN_HPP_TYPESAFE_EXPLICIT DeferredOperationKHR( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT
28669       : m_deferredOperationKHR( deferredOperationKHR )
28670     {}
28671 
28672 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeferredOperationKHR deferredOperationKHR)28673     DeferredOperationKHR & operator=(VkDeferredOperationKHR deferredOperationKHR) VULKAN_HPP_NOEXCEPT
28674     {
28675       m_deferredOperationKHR = deferredOperationKHR;
28676       return *this;
28677     }
28678 #endif
28679 
operator =(std::nullptr_t)28680     DeferredOperationKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28681     {
28682       m_deferredOperationKHR = VK_NULL_HANDLE;
28683       return *this;
28684     }
28685 
28686 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28687     auto operator<=>( DeferredOperationKHR const& ) const = default;
28688 #else
operator ==(DeferredOperationKHR const & rhs) const28689     bool operator==( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28690     {
28691       return m_deferredOperationKHR == rhs.m_deferredOperationKHR;
28692     }
28693 
operator !=(DeferredOperationKHR const & rhs) const28694     bool operator!=(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28695     {
28696       return m_deferredOperationKHR != rhs.m_deferredOperationKHR;
28697     }
28698 
operator <(DeferredOperationKHR const & rhs) const28699     bool operator<(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
28700     {
28701       return m_deferredOperationKHR < rhs.m_deferredOperationKHR;
28702     }
28703 #endif
28704 
operator VkDeferredOperationKHR() const28705     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeferredOperationKHR() const VULKAN_HPP_NOEXCEPT
28706     {
28707       return m_deferredOperationKHR;
28708     }
28709 
operator bool() const28710     explicit operator bool() const VULKAN_HPP_NOEXCEPT
28711     {
28712       return m_deferredOperationKHR != VK_NULL_HANDLE;
28713     }
28714 
operator !() const28715     bool operator!() const VULKAN_HPP_NOEXCEPT
28716     {
28717       return m_deferredOperationKHR == VK_NULL_HANDLE;
28718     }
28719 
28720   private:
28721     VkDeferredOperationKHR m_deferredOperationKHR;
28722   };
28723   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeferredOperationKHR ) == sizeof( VkDeferredOperationKHR ), "handle and wrapper have different size!" );
28724 
28725   template <>
28726   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDeferredOperationKHR>
28727   {
28728     using type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR;
28729   };
28730 
28731   template <>
28732   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR>
28733   {
28734     using Type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR;
28735   };
28736 
28737 
28738 
28739   template <>
28740   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
28741   {
28742     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
28743   };
28744 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
28745 
28746 #ifdef VK_ENABLE_BETA_EXTENSIONS
28747   struct DeferredOperationInfoKHR
28748   {
28749     static const bool allowDuplicate = false;
28750     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeferredOperationInfoKHR;
28751 
28752 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeferredOperationInfoKHRVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28753     VULKAN_HPP_CONSTEXPR DeferredOperationInfoKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle_ = {}) VULKAN_HPP_NOEXCEPT
28754     : operationHandle( operationHandle_ )
28755     {}
28756 
28757     VULKAN_HPP_CONSTEXPR DeferredOperationInfoKHR( DeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28758 
DeferredOperationInfoKHRVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28759     DeferredOperationInfoKHR( VkDeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28760     {
28761       *this = rhs;
28762     }
28763 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28764 
operator =VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28765     DeferredOperationInfoKHR & operator=( VkDeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28766     {
28767       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR const *>( &rhs );
28768       return *this;
28769     }
28770 
operator =VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28771     DeferredOperationInfoKHR & operator=( DeferredOperationInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
28772     {
28773       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeferredOperationInfoKHR ) );
28774       return *this;
28775     }
28776 
setPNextVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28777     DeferredOperationInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
28778     {
28779       pNext = pNext_;
28780       return *this;
28781     }
28782 
setOperationHandleVULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28783     DeferredOperationInfoKHR & setOperationHandle( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle_ ) VULKAN_HPP_NOEXCEPT
28784     {
28785       operationHandle = operationHandle_;
28786       return *this;
28787     }
28788 
28789 
operator VkDeferredOperationInfoKHR const&VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28790     operator VkDeferredOperationInfoKHR const&() const VULKAN_HPP_NOEXCEPT
28791     {
28792       return *reinterpret_cast<const VkDeferredOperationInfoKHR*>( this );
28793     }
28794 
operator VkDeferredOperationInfoKHR&VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28795     operator VkDeferredOperationInfoKHR &() VULKAN_HPP_NOEXCEPT
28796     {
28797       return *reinterpret_cast<VkDeferredOperationInfoKHR*>( this );
28798     }
28799 
28800 
28801 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28802     auto operator<=>( DeferredOperationInfoKHR const& ) const = default;
28803 #else
operator ==VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28804     bool operator==( DeferredOperationInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28805     {
28806       return ( sType == rhs.sType )
28807           && ( pNext == rhs.pNext )
28808           && ( operationHandle == rhs.operationHandle );
28809     }
28810 
operator !=VULKAN_HPP_NAMESPACE::DeferredOperationInfoKHR28811     bool operator!=( DeferredOperationInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
28812     {
28813       return !operator==( rhs );
28814     }
28815 #endif
28816 
28817 
28818 
28819   public:
28820     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeferredOperationInfoKHR;
28821     const void* pNext = {};
28822     VULKAN_HPP_NAMESPACE::DeferredOperationKHR operationHandle = {};
28823 
28824   };
28825   static_assert( sizeof( DeferredOperationInfoKHR ) == sizeof( VkDeferredOperationInfoKHR ), "struct and wrapper have different size!" );
28826   static_assert( std::is_standard_layout<DeferredOperationInfoKHR>::value, "struct wrapper is not a standard layout!" );
28827 
28828   template <>
28829   struct CppType<StructureType, StructureType::eDeferredOperationInfoKHR>
28830   {
28831     using Type = DeferredOperationInfoKHR;
28832   };
28833 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
28834 
28835   struct DescriptorBufferInfo
28836   {
28837 
28838 
28839 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28840     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT
28841     : buffer( buffer_ ), offset( offset_ ), range( range_ )
28842     {}
28843 
28844     VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
28845 
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28846     DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28847     {
28848       *this = rhs;
28849     }
28850 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
28851 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28852     DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28853     {
28854       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const *>( &rhs );
28855       return *this;
28856     }
28857 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28858     DescriptorBufferInfo & operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
28859     {
28860       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorBufferInfo ) );
28861       return *this;
28862     }
28863 
setBufferVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28864     DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
28865     {
28866       buffer = buffer_;
28867       return *this;
28868     }
28869 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28870     DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
28871     {
28872       offset = offset_;
28873       return *this;
28874     }
28875 
setRangeVULKAN_HPP_NAMESPACE::DescriptorBufferInfo28876     DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
28877     {
28878       range = range_;
28879       return *this;
28880     }
28881 
28882 
operator VkDescriptorBufferInfo const&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28883     operator VkDescriptorBufferInfo const&() const VULKAN_HPP_NOEXCEPT
28884     {
28885       return *reinterpret_cast<const VkDescriptorBufferInfo*>( this );
28886     }
28887 
operator VkDescriptorBufferInfo&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28888     operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
28889     {
28890       return *reinterpret_cast<VkDescriptorBufferInfo*>( this );
28891     }
28892 
28893 
28894 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28895     auto operator<=>( DescriptorBufferInfo const& ) const = default;
28896 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28897     bool operator==( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28898     {
28899       return ( buffer == rhs.buffer )
28900           && ( offset == rhs.offset )
28901           && ( range == rhs.range );
28902     }
28903 
operator !=VULKAN_HPP_NAMESPACE::DescriptorBufferInfo28904     bool operator!=( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
28905     {
28906       return !operator==( rhs );
28907     }
28908 #endif
28909 
28910 
28911 
28912   public:
28913     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
28914     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
28915     VULKAN_HPP_NAMESPACE::DeviceSize range = {};
28916 
28917   };
28918   static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" );
28919   static_assert( std::is_standard_layout<DescriptorBufferInfo>::value, "struct wrapper is not a standard layout!" );
28920 
28921   class Sampler
28922   {
28923   public:
28924     using CType = VkSampler;
28925 
28926     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler;
28927     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
28928 
28929   public:
Sampler()28930     VULKAN_HPP_CONSTEXPR Sampler() VULKAN_HPP_NOEXCEPT
28931       : m_sampler(VK_NULL_HANDLE)
28932     {}
28933 
Sampler(std::nullptr_t)28934     VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28935       : m_sampler(VK_NULL_HANDLE)
28936     {}
28937 
Sampler(VkSampler sampler)28938     VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT
28939       : m_sampler( sampler )
28940     {}
28941 
28942 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSampler sampler)28943     Sampler & operator=(VkSampler sampler) VULKAN_HPP_NOEXCEPT
28944     {
28945       m_sampler = sampler;
28946       return *this;
28947     }
28948 #endif
28949 
operator =(std::nullptr_t)28950     Sampler & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
28951     {
28952       m_sampler = VK_NULL_HANDLE;
28953       return *this;
28954     }
28955 
28956 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
28957     auto operator<=>( Sampler const& ) const = default;
28958 #else
operator ==(Sampler const & rhs) const28959     bool operator==( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
28960     {
28961       return m_sampler == rhs.m_sampler;
28962     }
28963 
operator !=(Sampler const & rhs) const28964     bool operator!=(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
28965     {
28966       return m_sampler != rhs.m_sampler;
28967     }
28968 
operator <(Sampler const & rhs) const28969     bool operator<(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT
28970     {
28971       return m_sampler < rhs.m_sampler;
28972     }
28973 #endif
28974 
operator VkSampler() const28975     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const VULKAN_HPP_NOEXCEPT
28976     {
28977       return m_sampler;
28978     }
28979 
operator bool() const28980     explicit operator bool() const VULKAN_HPP_NOEXCEPT
28981     {
28982       return m_sampler != VK_NULL_HANDLE;
28983     }
28984 
operator !() const28985     bool operator!() const VULKAN_HPP_NOEXCEPT
28986     {
28987       return m_sampler == VK_NULL_HANDLE;
28988     }
28989 
28990   private:
28991     VkSampler m_sampler;
28992   };
28993   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" );
28994 
28995   template <>
28996   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSampler>
28997   {
28998     using type = VULKAN_HPP_NAMESPACE::Sampler;
28999   };
29000 
29001   template <>
29002   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSampler>
29003   {
29004     using Type = VULKAN_HPP_NAMESPACE::Sampler;
29005   };
29006 
29007 
29008   template <>
29009   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler>
29010   {
29011     using Type = VULKAN_HPP_NAMESPACE::Sampler;
29012   };
29013 
29014 
29015   template <>
29016   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Sampler>
29017   {
29018     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29019   };
29020 
29021   class ImageView
29022   {
29023   public:
29024     using CType = VkImageView;
29025 
29026     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView;
29027     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
29028 
29029   public:
ImageView()29030     VULKAN_HPP_CONSTEXPR ImageView() VULKAN_HPP_NOEXCEPT
29031       : m_imageView(VK_NULL_HANDLE)
29032     {}
29033 
ImageView(std::nullptr_t)29034     VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29035       : m_imageView(VK_NULL_HANDLE)
29036     {}
29037 
ImageView(VkImageView imageView)29038     VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT
29039       : m_imageView( imageView )
29040     {}
29041 
29042 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImageView imageView)29043     ImageView & operator=(VkImageView imageView) VULKAN_HPP_NOEXCEPT
29044     {
29045       m_imageView = imageView;
29046       return *this;
29047     }
29048 #endif
29049 
operator =(std::nullptr_t)29050     ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29051     {
29052       m_imageView = VK_NULL_HANDLE;
29053       return *this;
29054     }
29055 
29056 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29057     auto operator<=>( ImageView const& ) const = default;
29058 #else
operator ==(ImageView const & rhs) const29059     bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
29060     {
29061       return m_imageView == rhs.m_imageView;
29062     }
29063 
operator !=(ImageView const & rhs) const29064     bool operator!=(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
29065     {
29066       return m_imageView != rhs.m_imageView;
29067     }
29068 
operator <(ImageView const & rhs) const29069     bool operator<(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT
29070     {
29071       return m_imageView < rhs.m_imageView;
29072     }
29073 #endif
29074 
operator VkImageView() const29075     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT
29076     {
29077       return m_imageView;
29078     }
29079 
operator bool() const29080     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29081     {
29082       return m_imageView != VK_NULL_HANDLE;
29083     }
29084 
operator !() const29085     bool operator!() const VULKAN_HPP_NOEXCEPT
29086     {
29087       return m_imageView == VK_NULL_HANDLE;
29088     }
29089 
29090   private:
29091     VkImageView m_imageView;
29092   };
29093   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" );
29094 
29095   template <>
29096   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eImageView>
29097   {
29098     using type = VULKAN_HPP_NAMESPACE::ImageView;
29099   };
29100 
29101   template <>
29102   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eImageView>
29103   {
29104     using Type = VULKAN_HPP_NAMESPACE::ImageView;
29105   };
29106 
29107 
29108   template <>
29109   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView>
29110   {
29111     using Type = VULKAN_HPP_NAMESPACE::ImageView;
29112   };
29113 
29114 
29115   template <>
29116   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ImageView>
29117   {
29118     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29119   };
29120 
29121   struct DescriptorImageInfo
29122   {
29123 
29124 
29125 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo29126     VULKAN_HPP_CONSTEXPR DescriptorImageInfo(VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
29127     : sampler( sampler_ ), imageView( imageView_ ), imageLayout( imageLayout_ )
29128     {}
29129 
29130     VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29131 
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo29132     DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29133     {
29134       *this = rhs;
29135     }
29136 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29137 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo29138     DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29139     {
29140       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorImageInfo const *>( &rhs );
29141       return *this;
29142     }
29143 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo29144     DescriptorImageInfo & operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29145     {
29146       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorImageInfo ) );
29147       return *this;
29148     }
29149 
setSamplerVULKAN_HPP_NAMESPACE::DescriptorImageInfo29150     DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
29151     {
29152       sampler = sampler_;
29153       return *this;
29154     }
29155 
setImageViewVULKAN_HPP_NAMESPACE::DescriptorImageInfo29156     DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
29157     {
29158       imageView = imageView_;
29159       return *this;
29160     }
29161 
setImageLayoutVULKAN_HPP_NAMESPACE::DescriptorImageInfo29162     DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
29163     {
29164       imageLayout = imageLayout_;
29165       return *this;
29166     }
29167 
29168 
operator VkDescriptorImageInfo const&VULKAN_HPP_NAMESPACE::DescriptorImageInfo29169     operator VkDescriptorImageInfo const&() const VULKAN_HPP_NOEXCEPT
29170     {
29171       return *reinterpret_cast<const VkDescriptorImageInfo*>( this );
29172     }
29173 
operator VkDescriptorImageInfo&VULKAN_HPP_NAMESPACE::DescriptorImageInfo29174     operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
29175     {
29176       return *reinterpret_cast<VkDescriptorImageInfo*>( this );
29177     }
29178 
29179 
29180 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29181     auto operator<=>( DescriptorImageInfo const& ) const = default;
29182 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorImageInfo29183     bool operator==( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29184     {
29185       return ( sampler == rhs.sampler )
29186           && ( imageView == rhs.imageView )
29187           && ( imageLayout == rhs.imageLayout );
29188     }
29189 
operator !=VULKAN_HPP_NAMESPACE::DescriptorImageInfo29190     bool operator!=( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29191     {
29192       return !operator==( rhs );
29193     }
29194 #endif
29195 
29196 
29197 
29198   public:
29199     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
29200     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
29201     VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
29202 
29203   };
29204   static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" );
29205   static_assert( std::is_standard_layout<DescriptorImageInfo>::value, "struct wrapper is not a standard layout!" );
29206 
29207   struct DescriptorPoolSize
29208   {
29209 
29210 
29211 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize29212     VULKAN_HPP_CONSTEXPR DescriptorPoolSize(VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
29213     : type( type_ ), descriptorCount( descriptorCount_ )
29214     {}
29215 
29216     VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29217 
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize29218     DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
29219     {
29220       *this = rhs;
29221     }
29222 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29223 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize29224     DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
29225     {
29226       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolSize const *>( &rhs );
29227       return *this;
29228     }
29229 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize29230     DescriptorPoolSize & operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
29231     {
29232       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorPoolSize ) );
29233       return *this;
29234     }
29235 
setTypeVULKAN_HPP_NAMESPACE::DescriptorPoolSize29236     DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
29237     {
29238       type = type_;
29239       return *this;
29240     }
29241 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorPoolSize29242     DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
29243     {
29244       descriptorCount = descriptorCount_;
29245       return *this;
29246     }
29247 
29248 
operator VkDescriptorPoolSize const&VULKAN_HPP_NAMESPACE::DescriptorPoolSize29249     operator VkDescriptorPoolSize const&() const VULKAN_HPP_NOEXCEPT
29250     {
29251       return *reinterpret_cast<const VkDescriptorPoolSize*>( this );
29252     }
29253 
operator VkDescriptorPoolSize&VULKAN_HPP_NAMESPACE::DescriptorPoolSize29254     operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
29255     {
29256       return *reinterpret_cast<VkDescriptorPoolSize*>( this );
29257     }
29258 
29259 
29260 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29261     auto operator<=>( DescriptorPoolSize const& ) const = default;
29262 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolSize29263     bool operator==( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
29264     {
29265       return ( type == rhs.type )
29266           && ( descriptorCount == rhs.descriptorCount );
29267     }
29268 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolSize29269     bool operator!=( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT
29270     {
29271       return !operator==( rhs );
29272     }
29273 #endif
29274 
29275 
29276 
29277   public:
29278     VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
29279     uint32_t descriptorCount = {};
29280 
29281   };
29282   static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" );
29283   static_assert( std::is_standard_layout<DescriptorPoolSize>::value, "struct wrapper is not a standard layout!" );
29284 
29285   struct DescriptorPoolCreateInfo
29286   {
29287     static const bool allowDuplicate = false;
29288     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo;
29289 
29290 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29291     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {}, uint32_t maxSets_ = {}, uint32_t poolSizeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ = {}) VULKAN_HPP_NOEXCEPT
29292     : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( poolSizeCount_ ), pPoolSizes( pPoolSizes_ )
29293     {}
29294 
29295     VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29296 
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29297     DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29298     {
29299       *this = rhs;
29300     }
29301 
29302 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29303     DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_, uint32_t maxSets_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ )
29304     : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( static_cast<uint32_t>( poolSizes_.size() ) ), pPoolSizes( poolSizes_.data() )
29305     {}
29306 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29307 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29308 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29309     DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29310     {
29311       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const *>( &rhs );
29312       return *this;
29313     }
29314 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29315     DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29316     {
29317       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorPoolCreateInfo ) );
29318       return *this;
29319     }
29320 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29321     DescriptorPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29322     {
29323       pNext = pNext_;
29324       return *this;
29325     }
29326 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29327     DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
29328     {
29329       flags = flags_;
29330       return *this;
29331     }
29332 
setMaxSetsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29333     DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT
29334     {
29335       maxSets = maxSets_;
29336       return *this;
29337     }
29338 
setPoolSizeCountVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29339     DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT
29340     {
29341       poolSizeCount = poolSizeCount_;
29342       return *this;
29343     }
29344 
setPPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29345     DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ ) VULKAN_HPP_NOEXCEPT
29346     {
29347       pPoolSizes = pPoolSizes_;
29348       return *this;
29349     }
29350 
29351 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29352     DescriptorPoolCreateInfo & setPoolSizes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ ) VULKAN_HPP_NOEXCEPT
29353     {
29354       poolSizeCount = static_cast<uint32_t>( poolSizes_.size() );
29355       pPoolSizes = poolSizes_.data();
29356       return *this;
29357     }
29358 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29359 
29360 
operator VkDescriptorPoolCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29361     operator VkDescriptorPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29362     {
29363       return *reinterpret_cast<const VkDescriptorPoolCreateInfo*>( this );
29364     }
29365 
operator VkDescriptorPoolCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29366     operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
29367     {
29368       return *reinterpret_cast<VkDescriptorPoolCreateInfo*>( this );
29369     }
29370 
29371 
29372 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29373     auto operator<=>( DescriptorPoolCreateInfo const& ) const = default;
29374 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29375     bool operator==( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29376     {
29377       return ( sType == rhs.sType )
29378           && ( pNext == rhs.pNext )
29379           && ( flags == rhs.flags )
29380           && ( maxSets == rhs.maxSets )
29381           && ( poolSizeCount == rhs.poolSizeCount )
29382           && ( pPoolSizes == rhs.pPoolSizes );
29383     }
29384 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo29385     bool operator!=( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29386     {
29387       return !operator==( rhs );
29388     }
29389 #endif
29390 
29391 
29392 
29393   public:
29394     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo;
29395     const void* pNext = {};
29396     VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {};
29397     uint32_t maxSets = {};
29398     uint32_t poolSizeCount = {};
29399     const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes = {};
29400 
29401   };
29402   static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" );
29403   static_assert( std::is_standard_layout<DescriptorPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
29404 
29405   template <>
29406   struct CppType<StructureType, StructureType::eDescriptorPoolCreateInfo>
29407   {
29408     using Type = DescriptorPoolCreateInfo;
29409   };
29410 
29411   struct DescriptorPoolInlineUniformBlockCreateInfoEXT
29412   {
29413     static const bool allowDuplicate = false;
29414     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
29415 
29416 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29417     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT(uint32_t maxInlineUniformBlockBindings_ = {}) VULKAN_HPP_NOEXCEPT
29418     : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
29419     {}
29420 
29421     VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29422 
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29423     DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29424     {
29425       *this = rhs;
29426     }
29427 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29428 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29429     DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29430     {
29431       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT const *>( &rhs );
29432       return *this;
29433     }
29434 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29435     DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
29436     {
29437       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) );
29438       return *this;
29439     }
29440 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29441     DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29442     {
29443       pNext = pNext_;
29444       return *this;
29445     }
29446 
setMaxInlineUniformBlockBindingsVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29447     DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
29448     {
29449       maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
29450       return *this;
29451     }
29452 
29453 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29454     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
29455     {
29456       return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
29457     }
29458 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29459     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
29460     {
29461       return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
29462     }
29463 
29464 
29465 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29466     auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfoEXT const& ) const = default;
29467 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29468     bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
29469     {
29470       return ( sType == rhs.sType )
29471           && ( pNext == rhs.pNext )
29472           && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
29473     }
29474 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT29475     bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
29476     {
29477       return !operator==( rhs );
29478     }
29479 #endif
29480 
29481 
29482 
29483   public:
29484     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
29485     const void* pNext = {};
29486     uint32_t maxInlineUniformBlockBindings = {};
29487 
29488   };
29489   static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" );
29490   static_assert( std::is_standard_layout<DescriptorPoolInlineUniformBlockCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
29491 
29492   template <>
29493   struct CppType<StructureType, StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT>
29494   {
29495     using Type = DescriptorPoolInlineUniformBlockCreateInfoEXT;
29496   };
29497 
29498   class DescriptorPool
29499   {
29500   public:
29501     using CType = VkDescriptorPool;
29502 
29503     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool;
29504     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
29505 
29506   public:
DescriptorPool()29507     VULKAN_HPP_CONSTEXPR DescriptorPool() VULKAN_HPP_NOEXCEPT
29508       : m_descriptorPool(VK_NULL_HANDLE)
29509     {}
29510 
DescriptorPool(std::nullptr_t)29511     VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29512       : m_descriptorPool(VK_NULL_HANDLE)
29513     {}
29514 
DescriptorPool(VkDescriptorPool descriptorPool)29515     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT
29516       : m_descriptorPool( descriptorPool )
29517     {}
29518 
29519 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorPool descriptorPool)29520     DescriptorPool & operator=(VkDescriptorPool descriptorPool) VULKAN_HPP_NOEXCEPT
29521     {
29522       m_descriptorPool = descriptorPool;
29523       return *this;
29524     }
29525 #endif
29526 
operator =(std::nullptr_t)29527     DescriptorPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29528     {
29529       m_descriptorPool = VK_NULL_HANDLE;
29530       return *this;
29531     }
29532 
29533 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29534     auto operator<=>( DescriptorPool const& ) const = default;
29535 #else
operator ==(DescriptorPool const & rhs) const29536     bool operator==( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
29537     {
29538       return m_descriptorPool == rhs.m_descriptorPool;
29539     }
29540 
operator !=(DescriptorPool const & rhs) const29541     bool operator!=(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
29542     {
29543       return m_descriptorPool != rhs.m_descriptorPool;
29544     }
29545 
operator <(DescriptorPool const & rhs) const29546     bool operator<(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT
29547     {
29548       return m_descriptorPool < rhs.m_descriptorPool;
29549     }
29550 #endif
29551 
operator VkDescriptorPool() const29552     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const VULKAN_HPP_NOEXCEPT
29553     {
29554       return m_descriptorPool;
29555     }
29556 
operator bool() const29557     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29558     {
29559       return m_descriptorPool != VK_NULL_HANDLE;
29560     }
29561 
operator !() const29562     bool operator!() const VULKAN_HPP_NOEXCEPT
29563     {
29564       return m_descriptorPool == VK_NULL_HANDLE;
29565     }
29566 
29567   private:
29568     VkDescriptorPool m_descriptorPool;
29569   };
29570   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" );
29571 
29572   template <>
29573   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorPool>
29574   {
29575     using type = VULKAN_HPP_NAMESPACE::DescriptorPool;
29576   };
29577 
29578   template <>
29579   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool>
29580   {
29581     using Type = VULKAN_HPP_NAMESPACE::DescriptorPool;
29582   };
29583 
29584 
29585   template <>
29586   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool>
29587   {
29588     using Type = VULKAN_HPP_NAMESPACE::DescriptorPool;
29589   };
29590 
29591 
29592   template <>
29593   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorPool>
29594   {
29595     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29596   };
29597 
29598   class DescriptorSetLayout
29599   {
29600   public:
29601     using CType = VkDescriptorSetLayout;
29602 
29603     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout;
29604     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
29605 
29606   public:
DescriptorSetLayout()29607     VULKAN_HPP_CONSTEXPR DescriptorSetLayout() VULKAN_HPP_NOEXCEPT
29608       : m_descriptorSetLayout(VK_NULL_HANDLE)
29609     {}
29610 
DescriptorSetLayout(std::nullptr_t)29611     VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29612       : m_descriptorSetLayout(VK_NULL_HANDLE)
29613     {}
29614 
DescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout)29615     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT
29616       : m_descriptorSetLayout( descriptorSetLayout )
29617     {}
29618 
29619 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSetLayout descriptorSetLayout)29620     DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout) VULKAN_HPP_NOEXCEPT
29621     {
29622       m_descriptorSetLayout = descriptorSetLayout;
29623       return *this;
29624     }
29625 #endif
29626 
operator =(std::nullptr_t)29627     DescriptorSetLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
29628     {
29629       m_descriptorSetLayout = VK_NULL_HANDLE;
29630       return *this;
29631     }
29632 
29633 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29634     auto operator<=>( DescriptorSetLayout const& ) const = default;
29635 #else
operator ==(DescriptorSetLayout const & rhs) const29636     bool operator==( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
29637     {
29638       return m_descriptorSetLayout == rhs.m_descriptorSetLayout;
29639     }
29640 
operator !=(DescriptorSetLayout const & rhs) const29641     bool operator!=(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
29642     {
29643       return m_descriptorSetLayout != rhs.m_descriptorSetLayout;
29644     }
29645 
operator <(DescriptorSetLayout const & rhs) const29646     bool operator<(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
29647     {
29648       return m_descriptorSetLayout < rhs.m_descriptorSetLayout;
29649     }
29650 #endif
29651 
operator VkDescriptorSetLayout() const29652     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const VULKAN_HPP_NOEXCEPT
29653     {
29654       return m_descriptorSetLayout;
29655     }
29656 
operator bool() const29657     explicit operator bool() const VULKAN_HPP_NOEXCEPT
29658     {
29659       return m_descriptorSetLayout != VK_NULL_HANDLE;
29660     }
29661 
operator !() const29662     bool operator!() const VULKAN_HPP_NOEXCEPT
29663     {
29664       return m_descriptorSetLayout == VK_NULL_HANDLE;
29665     }
29666 
29667   private:
29668     VkDescriptorSetLayout m_descriptorSetLayout;
29669   };
29670   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" );
29671 
29672   template <>
29673   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorSetLayout>
29674   {
29675     using type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
29676   };
29677 
29678   template <>
29679   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout>
29680   {
29681     using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
29682   };
29683 
29684 
29685   template <>
29686   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout>
29687   {
29688     using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout;
29689   };
29690 
29691 
29692   template <>
29693   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
29694   {
29695     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
29696   };
29697 
29698   struct DescriptorSetAllocateInfo
29699   {
29700     static const bool allowDuplicate = false;
29701     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo;
29702 
29703 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29704     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {}, uint32_t descriptorSetCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}) VULKAN_HPP_NOEXCEPT
29705     : descriptorPool( descriptorPool_ ), descriptorSetCount( descriptorSetCount_ ), pSetLayouts( pSetLayouts_ )
29706     {}
29707 
29708     VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29709 
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29710     DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29711     {
29712       *this = rhs;
29713     }
29714 
29715 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29716     DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ )
29717     : descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() )
29718     {}
29719 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29720 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29721 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29722     DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29723     {
29724       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const *>( &rhs );
29725       return *this;
29726     }
29727 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29728     DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29729     {
29730       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetAllocateInfo ) );
29731       return *this;
29732     }
29733 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29734     DescriptorSetAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29735     {
29736       pNext = pNext_;
29737       return *this;
29738     }
29739 
setDescriptorPoolVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29740     DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT
29741     {
29742       descriptorPool = descriptorPool_;
29743       return *this;
29744     }
29745 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29746     DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
29747     {
29748       descriptorSetCount = descriptorSetCount_;
29749       return *this;
29750     }
29751 
setPSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29752     DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
29753     {
29754       pSetLayouts = pSetLayouts_;
29755       return *this;
29756     }
29757 
29758 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29759     DescriptorSetAllocateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
29760     {
29761       descriptorSetCount = static_cast<uint32_t>( setLayouts_.size() );
29762       pSetLayouts = setLayouts_.data();
29763       return *this;
29764     }
29765 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29766 
29767 
operator VkDescriptorSetAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29768     operator VkDescriptorSetAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
29769     {
29770       return *reinterpret_cast<const VkDescriptorSetAllocateInfo*>( this );
29771     }
29772 
operator VkDescriptorSetAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29773     operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
29774     {
29775       return *reinterpret_cast<VkDescriptorSetAllocateInfo*>( this );
29776     }
29777 
29778 
29779 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29780     auto operator<=>( DescriptorSetAllocateInfo const& ) const = default;
29781 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29782     bool operator==( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29783     {
29784       return ( sType == rhs.sType )
29785           && ( pNext == rhs.pNext )
29786           && ( descriptorPool == rhs.descriptorPool )
29787           && ( descriptorSetCount == rhs.descriptorSetCount )
29788           && ( pSetLayouts == rhs.pSetLayouts );
29789     }
29790 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo29791     bool operator!=( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
29792     {
29793       return !operator==( rhs );
29794     }
29795 #endif
29796 
29797 
29798 
29799   public:
29800     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo;
29801     const void* pNext = {};
29802     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {};
29803     uint32_t descriptorSetCount = {};
29804     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
29805 
29806   };
29807   static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" );
29808   static_assert( std::is_standard_layout<DescriptorSetAllocateInfo>::value, "struct wrapper is not a standard layout!" );
29809 
29810   template <>
29811   struct CppType<StructureType, StructureType::eDescriptorSetAllocateInfo>
29812   {
29813     using Type = DescriptorSetAllocateInfo;
29814   };
29815 
29816   struct DescriptorSetLayoutBinding
29817   {
29818 
29819 
29820 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29821     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding(uint32_t binding_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ = {}) VULKAN_HPP_NOEXCEPT
29822     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( descriptorCount_ ), stageFlags( stageFlags_ ), pImmutableSamplers( pImmutableSamplers_ )
29823     {}
29824 
29825     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29826 
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29827     DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
29828     {
29829       *this = rhs;
29830     }
29831 
29832 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29833     DescriptorSetLayoutBinding( uint32_t binding_, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ )
29834     : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( static_cast<uint32_t>( immutableSamplers_.size() ) ), stageFlags( stageFlags_ ), pImmutableSamplers( immutableSamplers_.data() )
29835     {}
29836 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29837 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29838 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29839     DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
29840     {
29841       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const *>( &rhs );
29842       return *this;
29843     }
29844 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29845     DescriptorSetLayoutBinding & operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
29846     {
29847       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutBinding ) );
29848       return *this;
29849     }
29850 
setBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29851     DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
29852     {
29853       binding = binding_;
29854       return *this;
29855     }
29856 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29857     DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
29858     {
29859       descriptorType = descriptorType_;
29860       return *this;
29861     }
29862 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29863     DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
29864     {
29865       descriptorCount = descriptorCount_;
29866       return *this;
29867     }
29868 
setStageFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29869     DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
29870     {
29871       stageFlags = stageFlags_;
29872       return *this;
29873     }
29874 
setPImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29875     DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT
29876     {
29877       pImmutableSamplers = pImmutableSamplers_;
29878       return *this;
29879     }
29880 
29881 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29882     DescriptorSetLayoutBinding & setImmutableSamplers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ ) VULKAN_HPP_NOEXCEPT
29883     {
29884       descriptorCount = static_cast<uint32_t>( immutableSamplers_.size() );
29885       pImmutableSamplers = immutableSamplers_.data();
29886       return *this;
29887     }
29888 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29889 
29890 
operator VkDescriptorSetLayoutBinding const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29891     operator VkDescriptorSetLayoutBinding const&() const VULKAN_HPP_NOEXCEPT
29892     {
29893       return *reinterpret_cast<const VkDescriptorSetLayoutBinding*>( this );
29894     }
29895 
operator VkDescriptorSetLayoutBinding&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29896     operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
29897     {
29898       return *reinterpret_cast<VkDescriptorSetLayoutBinding*>( this );
29899     }
29900 
29901 
29902 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
29903     auto operator<=>( DescriptorSetLayoutBinding const& ) const = default;
29904 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29905     bool operator==( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
29906     {
29907       return ( binding == rhs.binding )
29908           && ( descriptorType == rhs.descriptorType )
29909           && ( descriptorCount == rhs.descriptorCount )
29910           && ( stageFlags == rhs.stageFlags )
29911           && ( pImmutableSamplers == rhs.pImmutableSamplers );
29912     }
29913 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding29914     bool operator!=( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT
29915     {
29916       return !operator==( rhs );
29917     }
29918 #endif
29919 
29920 
29921 
29922   public:
29923     uint32_t binding = {};
29924     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
29925     uint32_t descriptorCount = {};
29926     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
29927     const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers = {};
29928 
29929   };
29930   static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" );
29931   static_assert( std::is_standard_layout<DescriptorSetLayoutBinding>::value, "struct wrapper is not a standard layout!" );
29932 
29933   struct DescriptorSetLayoutBindingFlagsCreateInfo
29934   {
29935     static const bool allowDuplicate = false;
29936     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
29937 
29938 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29939     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo(uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ = {}) VULKAN_HPP_NOEXCEPT
29940     : bindingCount( bindingCount_ ), pBindingFlags( pBindingFlags_ )
29941     {}
29942 
29943     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
29944 
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29945     DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29946     {
29947       *this = rhs;
29948     }
29949 
29950 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutBindingFlagsCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29951     DescriptorSetLayoutBindingFlagsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ )
29952     : bindingCount( static_cast<uint32_t>( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() )
29953     {}
29954 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29955 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
29956 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29957     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29958     {
29959       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs );
29960       return *this;
29961     }
29962 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29963     DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
29964     {
29965       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) );
29966       return *this;
29967     }
29968 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29969     DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
29970     {
29971       pNext = pNext_;
29972       return *this;
29973     }
29974 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29975     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
29976     {
29977       bindingCount = bindingCount_;
29978       return *this;
29979     }
29980 
setPBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29981     DescriptorSetLayoutBindingFlagsCreateInfo & setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
29982     {
29983       pBindingFlags = pBindingFlags_;
29984       return *this;
29985     }
29986 
29987 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29988     DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ ) VULKAN_HPP_NOEXCEPT
29989     {
29990       bindingCount = static_cast<uint32_t>( bindingFlags_.size() );
29991       pBindingFlags = bindingFlags_.data();
29992       return *this;
29993     }
29994 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
29995 
29996 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo29997     operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
29998     {
29999       return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
30000     }
30001 
operator VkDescriptorSetLayoutBindingFlagsCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo30002     operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
30003     {
30004       return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>( this );
30005     }
30006 
30007 
30008 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30009     auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const& ) const = default;
30010 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo30011     bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30012     {
30013       return ( sType == rhs.sType )
30014           && ( pNext == rhs.pNext )
30015           && ( bindingCount == rhs.bindingCount )
30016           && ( pBindingFlags == rhs.pBindingFlags );
30017     }
30018 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo30019     bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30020     {
30021       return !operator==( rhs );
30022     }
30023 #endif
30024 
30025 
30026 
30027   public:
30028     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
30029     const void* pNext = {};
30030     uint32_t bindingCount = {};
30031     const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags = {};
30032 
30033   };
30034   static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfo ), "struct and wrapper have different size!" );
30035   static_assert( std::is_standard_layout<DescriptorSetLayoutBindingFlagsCreateInfo>::value, "struct wrapper is not a standard layout!" );
30036 
30037   template <>
30038   struct CppType<StructureType, StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo>
30039   {
30040     using Type = DescriptorSetLayoutBindingFlagsCreateInfo;
30041   };
30042   using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
30043 
30044   struct DescriptorSetLayoutCreateInfo
30045   {
30046     static const bool allowDuplicate = false;
30047     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo;
30048 
30049 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30050     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {}, uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ = {}) VULKAN_HPP_NOEXCEPT
30051     : flags( flags_ ), bindingCount( bindingCount_ ), pBindings( pBindings_ )
30052     {}
30053 
30054     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30055 
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30056     DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30057     {
30058       *this = rhs;
30059     }
30060 
30061 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30062     DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ )
30063     : flags( flags_ ), bindingCount( static_cast<uint32_t>( bindings_.size() ) ), pBindings( bindings_.data() )
30064     {}
30065 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30066 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30067 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30068     DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30069     {
30070       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const *>( &rhs );
30071       return *this;
30072     }
30073 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30074     DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30075     {
30076       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutCreateInfo ) );
30077       return *this;
30078     }
30079 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30080     DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30081     {
30082       pNext = pNext_;
30083       return *this;
30084     }
30085 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30086     DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
30087     {
30088       flags = flags_;
30089       return *this;
30090     }
30091 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30092     DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
30093     {
30094       bindingCount = bindingCount_;
30095       return *this;
30096     }
30097 
setPBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30098     DescriptorSetLayoutCreateInfo & setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ ) VULKAN_HPP_NOEXCEPT
30099     {
30100       pBindings = pBindings_;
30101       return *this;
30102     }
30103 
30104 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30105     DescriptorSetLayoutCreateInfo & setBindings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ ) VULKAN_HPP_NOEXCEPT
30106     {
30107       bindingCount = static_cast<uint32_t>( bindings_.size() );
30108       pBindings = bindings_.data();
30109       return *this;
30110     }
30111 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30112 
30113 
operator VkDescriptorSetLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30114     operator VkDescriptorSetLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
30115     {
30116       return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( this );
30117     }
30118 
operator VkDescriptorSetLayoutCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30119     operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
30120     {
30121       return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>( this );
30122     }
30123 
30124 
30125 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30126     auto operator<=>( DescriptorSetLayoutCreateInfo const& ) const = default;
30127 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30128     bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30129     {
30130       return ( sType == rhs.sType )
30131           && ( pNext == rhs.pNext )
30132           && ( flags == rhs.flags )
30133           && ( bindingCount == rhs.bindingCount )
30134           && ( pBindings == rhs.pBindings );
30135     }
30136 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo30137     bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30138     {
30139       return !operator==( rhs );
30140     }
30141 #endif
30142 
30143 
30144 
30145   public:
30146     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
30147     const void* pNext = {};
30148     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {};
30149     uint32_t bindingCount = {};
30150     const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings = {};
30151 
30152   };
30153   static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" );
30154   static_assert( std::is_standard_layout<DescriptorSetLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
30155 
30156   template <>
30157   struct CppType<StructureType, StructureType::eDescriptorSetLayoutCreateInfo>
30158   {
30159     using Type = DescriptorSetLayoutCreateInfo;
30160   };
30161 
30162   struct DescriptorSetLayoutSupport
30163   {
30164     static const bool allowDuplicate = false;
30165     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport;
30166 
30167 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30168     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport(VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}) VULKAN_HPP_NOEXCEPT
30169     : supported( supported_ )
30170     {}
30171 
30172     VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30173 
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30174     DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30175     {
30176       *this = rhs;
30177     }
30178 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30179 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30180     DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30181     {
30182       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const *>( &rhs );
30183       return *this;
30184     }
30185 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30186     DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30187     {
30188       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetLayoutSupport ) );
30189       return *this;
30190     }
30191 
30192 
operator VkDescriptorSetLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30193     operator VkDescriptorSetLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
30194     {
30195       return *reinterpret_cast<const VkDescriptorSetLayoutSupport*>( this );
30196     }
30197 
operator VkDescriptorSetLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30198     operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
30199     {
30200       return *reinterpret_cast<VkDescriptorSetLayoutSupport*>( this );
30201     }
30202 
30203 
30204 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30205     auto operator<=>( DescriptorSetLayoutSupport const& ) const = default;
30206 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30207     bool operator==( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30208     {
30209       return ( sType == rhs.sType )
30210           && ( pNext == rhs.pNext )
30211           && ( supported == rhs.supported );
30212     }
30213 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport30214     bool operator!=( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30215     {
30216       return !operator==( rhs );
30217     }
30218 #endif
30219 
30220 
30221 
30222   public:
30223     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport;
30224     void* pNext = {};
30225     VULKAN_HPP_NAMESPACE::Bool32 supported = {};
30226 
30227   };
30228   static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" );
30229   static_assert( std::is_standard_layout<DescriptorSetLayoutSupport>::value, "struct wrapper is not a standard layout!" );
30230 
30231   template <>
30232   struct CppType<StructureType, StructureType::eDescriptorSetLayoutSupport>
30233   {
30234     using Type = DescriptorSetLayoutSupport;
30235   };
30236   using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
30237 
30238   struct DescriptorSetVariableDescriptorCountAllocateInfo
30239   {
30240     static const bool allowDuplicate = false;
30241     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
30242 
30243 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30244     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo(uint32_t descriptorSetCount_ = {}, const uint32_t* pDescriptorCounts_ = {}) VULKAN_HPP_NOEXCEPT
30245     : descriptorSetCount( descriptorSetCount_ ), pDescriptorCounts( pDescriptorCounts_ )
30246     {}
30247 
30248     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30249 
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30250     DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30251     {
30252       *this = rhs;
30253     }
30254 
30255 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorSetVariableDescriptorCountAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30256     DescriptorSetVariableDescriptorCountAllocateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ )
30257     : descriptorSetCount( static_cast<uint32_t>( descriptorCounts_.size() ) ), pDescriptorCounts( descriptorCounts_.data() )
30258     {}
30259 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30260 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30261 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30262     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30263     {
30264       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs );
30265       return *this;
30266     }
30267 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30268     DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30269     {
30270       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) );
30271       return *this;
30272     }
30273 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30274     DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30275     {
30276       pNext = pNext_;
30277       return *this;
30278     }
30279 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30280     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
30281     {
30282       descriptorSetCount = descriptorSetCount_;
30283       return *this;
30284     }
30285 
setPDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30286     DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT
30287     {
30288       pDescriptorCounts = pDescriptorCounts_;
30289       return *this;
30290     }
30291 
30292 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30293     DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT
30294     {
30295       descriptorSetCount = static_cast<uint32_t>( descriptorCounts_.size() );
30296       pDescriptorCounts = descriptorCounts_.data();
30297       return *this;
30298     }
30299 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30300 
30301 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30302     operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
30303     {
30304       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
30305     }
30306 
operator VkDescriptorSetVariableDescriptorCountAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30307     operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
30308     {
30309       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>( this );
30310     }
30311 
30312 
30313 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30314     auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const& ) const = default;
30315 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30316     bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30317     {
30318       return ( sType == rhs.sType )
30319           && ( pNext == rhs.pNext )
30320           && ( descriptorSetCount == rhs.descriptorSetCount )
30321           && ( pDescriptorCounts == rhs.pDescriptorCounts );
30322     }
30323 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo30324     bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30325     {
30326       return !operator==( rhs );
30327     }
30328 #endif
30329 
30330 
30331 
30332   public:
30333     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
30334     const void* pNext = {};
30335     uint32_t descriptorSetCount = {};
30336     const uint32_t* pDescriptorCounts = {};
30337 
30338   };
30339   static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfo ), "struct and wrapper have different size!" );
30340   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountAllocateInfo>::value, "struct wrapper is not a standard layout!" );
30341 
30342   template <>
30343   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo>
30344   {
30345     using Type = DescriptorSetVariableDescriptorCountAllocateInfo;
30346   };
30347   using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
30348 
30349   struct DescriptorSetVariableDescriptorCountLayoutSupport
30350   {
30351     static const bool allowDuplicate = false;
30352     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
30353 
30354 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30355     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport(uint32_t maxVariableDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
30356     : maxVariableDescriptorCount( maxVariableDescriptorCount_ )
30357     {}
30358 
30359     VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30360 
DescriptorSetVariableDescriptorCountLayoutSupportVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30361     DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30362     {
30363       *this = rhs;
30364     }
30365 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30366 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30367     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30368     {
30369       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs );
30370       return *this;
30371     }
30372 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30373     DescriptorSetVariableDescriptorCountLayoutSupport & operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
30374     {
30375       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) );
30376       return *this;
30377     }
30378 
30379 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30380     operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&() const VULKAN_HPP_NOEXCEPT
30381     {
30382       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
30383     }
30384 
operator VkDescriptorSetVariableDescriptorCountLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30385     operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
30386     {
30387       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>( this );
30388     }
30389 
30390 
30391 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30392     auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const& ) const = default;
30393 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30394     bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30395     {
30396       return ( sType == rhs.sType )
30397           && ( pNext == rhs.pNext )
30398           && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
30399     }
30400 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport30401     bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT
30402     {
30403       return !operator==( rhs );
30404     }
30405 #endif
30406 
30407 
30408 
30409   public:
30410     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
30411     void* pNext = {};
30412     uint32_t maxVariableDescriptorCount = {};
30413 
30414   };
30415   static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupport ), "struct and wrapper have different size!" );
30416   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountLayoutSupport>::value, "struct wrapper is not a standard layout!" );
30417 
30418   template <>
30419   struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport>
30420   {
30421     using Type = DescriptorSetVariableDescriptorCountLayoutSupport;
30422   };
30423   using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
30424 
30425   struct DescriptorUpdateTemplateEntry
30426   {
30427 
30428 
30429 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30430     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry(uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, size_t offset_ = {}, size_t stride_ = {}) VULKAN_HPP_NOEXCEPT
30431     : dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), offset( offset_ ), stride( stride_ )
30432     {}
30433 
30434     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30435 
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30436     DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
30437     {
30438       *this = rhs;
30439     }
30440 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30441 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30442     DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
30443     {
30444       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const *>( &rhs );
30445       return *this;
30446     }
30447 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30448     DescriptorUpdateTemplateEntry & operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
30449     {
30450       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorUpdateTemplateEntry ) );
30451       return *this;
30452     }
30453 
setDstBindingVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30454     DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
30455     {
30456       dstBinding = dstBinding_;
30457       return *this;
30458     }
30459 
setDstArrayElementVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30460     DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
30461     {
30462       dstArrayElement = dstArrayElement_;
30463       return *this;
30464     }
30465 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30466     DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
30467     {
30468       descriptorCount = descriptorCount_;
30469       return *this;
30470     }
30471 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30472     DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
30473     {
30474       descriptorType = descriptorType_;
30475       return *this;
30476     }
30477 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30478     DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT
30479     {
30480       offset = offset_;
30481       return *this;
30482     }
30483 
setStrideVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30484     DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT
30485     {
30486       stride = stride_;
30487       return *this;
30488     }
30489 
30490 
operator VkDescriptorUpdateTemplateEntry const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30491     operator VkDescriptorUpdateTemplateEntry const&() const VULKAN_HPP_NOEXCEPT
30492     {
30493       return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry*>( this );
30494     }
30495 
operator VkDescriptorUpdateTemplateEntry&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30496     operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
30497     {
30498       return *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>( this );
30499     }
30500 
30501 
30502 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30503     auto operator<=>( DescriptorUpdateTemplateEntry const& ) const = default;
30504 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30505     bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
30506     {
30507       return ( dstBinding == rhs.dstBinding )
30508           && ( dstArrayElement == rhs.dstArrayElement )
30509           && ( descriptorCount == rhs.descriptorCount )
30510           && ( descriptorType == rhs.descriptorType )
30511           && ( offset == rhs.offset )
30512           && ( stride == rhs.stride );
30513     }
30514 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry30515     bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT
30516     {
30517       return !operator==( rhs );
30518     }
30519 #endif
30520 
30521 
30522 
30523   public:
30524     uint32_t dstBinding = {};
30525     uint32_t dstArrayElement = {};
30526     uint32_t descriptorCount = {};
30527     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
30528     size_t offset = {};
30529     size_t stride = {};
30530 
30531   };
30532   static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" );
30533   static_assert( std::is_standard_layout<DescriptorUpdateTemplateEntry>::value, "struct wrapper is not a standard layout!" );
30534   using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
30535 
30536   struct DescriptorUpdateTemplateCreateInfo
30537   {
30538     static const bool allowDuplicate = false;
30539     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo;
30540 
30541 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30542     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ = {}, uint32_t descriptorUpdateEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ = {}, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, uint32_t set_ = {}) VULKAN_HPP_NOEXCEPT
30543     : flags( flags_ ), descriptorUpdateEntryCount( descriptorUpdateEntryCount_ ), pDescriptorUpdateEntries( pDescriptorUpdateEntries_ ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
30544     {}
30545 
30546     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30547 
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30548     DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30549     {
30550       *this = rhs;
30551     }
30552 
30553 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30554     DescriptorUpdateTemplateCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, uint32_t set_ = {} )
30555     : flags( flags_ ), descriptorUpdateEntryCount( static_cast<uint32_t>( descriptorUpdateEntries_.size() ) ), pDescriptorUpdateEntries( descriptorUpdateEntries_.data() ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ )
30556     {}
30557 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30558 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30559 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30560     DescriptorUpdateTemplateCreateInfo & operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30561     {
30562       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const *>( &rhs );
30563       return *this;
30564     }
30565 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30566     DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30567     {
30568       memcpy( static_cast<void *>( this ), &rhs, sizeof( DescriptorUpdateTemplateCreateInfo ) );
30569       return *this;
30570     }
30571 
setPNextVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30572     DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30573     {
30574       pNext = pNext_;
30575       return *this;
30576     }
30577 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30578     DescriptorUpdateTemplateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
30579     {
30580       flags = flags_;
30581       return *this;
30582     }
30583 
setDescriptorUpdateEntryCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30584     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT
30585     {
30586       descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
30587       return *this;
30588     }
30589 
setPDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30590     DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
30591     {
30592       pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
30593       return *this;
30594     }
30595 
30596 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30597     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
30598     {
30599       descriptorUpdateEntryCount = static_cast<uint32_t>( descriptorUpdateEntries_.size() );
30600       pDescriptorUpdateEntries = descriptorUpdateEntries_.data();
30601       return *this;
30602     }
30603 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30604 
setTemplateTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30605     DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
30606     {
30607       templateType = templateType_;
30608       return *this;
30609     }
30610 
setDescriptorSetLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30611     DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
30612     {
30613       descriptorSetLayout = descriptorSetLayout_;
30614       return *this;
30615     }
30616 
setPipelineBindPointVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30617     DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
30618     {
30619       pipelineBindPoint = pipelineBindPoint_;
30620       return *this;
30621     }
30622 
setPipelineLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30623     DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT
30624     {
30625       pipelineLayout = pipelineLayout_;
30626       return *this;
30627     }
30628 
setSetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30629     DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
30630     {
30631       set = set_;
30632       return *this;
30633     }
30634 
30635 
operator VkDescriptorUpdateTemplateCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30636     operator VkDescriptorUpdateTemplateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
30637     {
30638       return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( this );
30639     }
30640 
operator VkDescriptorUpdateTemplateCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30641     operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
30642     {
30643       return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>( this );
30644     }
30645 
30646 
30647 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30648     auto operator<=>( DescriptorUpdateTemplateCreateInfo const& ) const = default;
30649 #else
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30650     bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30651     {
30652       return ( sType == rhs.sType )
30653           && ( pNext == rhs.pNext )
30654           && ( flags == rhs.flags )
30655           && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount )
30656           && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries )
30657           && ( templateType == rhs.templateType )
30658           && ( descriptorSetLayout == rhs.descriptorSetLayout )
30659           && ( pipelineBindPoint == rhs.pipelineBindPoint )
30660           && ( pipelineLayout == rhs.pipelineLayout )
30661           && ( set == rhs.set );
30662     }
30663 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo30664     bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30665     {
30666       return !operator==( rhs );
30667     }
30668 #endif
30669 
30670 
30671 
30672   public:
30673     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
30674     const void* pNext = {};
30675     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {};
30676     uint32_t descriptorUpdateEntryCount = {};
30677     const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries = {};
30678     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet;
30679     VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
30680     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
30681     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {};
30682     uint32_t set = {};
30683 
30684   };
30685   static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" );
30686   static_assert( std::is_standard_layout<DescriptorUpdateTemplateCreateInfo>::value, "struct wrapper is not a standard layout!" );
30687 
30688   template <>
30689   struct CppType<StructureType, StructureType::eDescriptorUpdateTemplateCreateInfo>
30690   {
30691     using Type = DescriptorUpdateTemplateCreateInfo;
30692   };
30693   using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
30694 
30695   struct DeviceQueueCreateInfo
30696   {
30697     static const bool allowDuplicate = false;
30698     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo;
30699 
30700 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30701     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueCount_ = {}, const float* pQueuePriorities_ = {}) VULKAN_HPP_NOEXCEPT
30702     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( queueCount_ ), pQueuePriorities( pQueuePriorities_ )
30703     {}
30704 
30705     VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30706 
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30707     DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30708     {
30709       *this = rhs;
30710     }
30711 
30712 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30713     DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_, uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ )
30714     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( static_cast<uint32_t>( queuePriorities_.size() ) ), pQueuePriorities( queuePriorities_.data() )
30715     {}
30716 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30717 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30718 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30719     DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30720     {
30721       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const *>( &rhs );
30722       return *this;
30723     }
30724 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30725     DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
30726     {
30727       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceQueueCreateInfo ) );
30728       return *this;
30729     }
30730 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30731     DeviceQueueCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
30732     {
30733       pNext = pNext_;
30734       return *this;
30735     }
30736 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30737     DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
30738     {
30739       flags = flags_;
30740       return *this;
30741     }
30742 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30743     DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
30744     {
30745       queueFamilyIndex = queueFamilyIndex_;
30746       return *this;
30747     }
30748 
setQueueCountVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30749     DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT
30750     {
30751       queueCount = queueCount_;
30752       return *this;
30753     }
30754 
setPQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30755     DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT
30756     {
30757       pQueuePriorities = pQueuePriorities_;
30758       return *this;
30759     }
30760 
30761 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30762     DeviceQueueCreateInfo & setQueuePriorities( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT
30763     {
30764       queueCount = static_cast<uint32_t>( queuePriorities_.size() );
30765       pQueuePriorities = queuePriorities_.data();
30766       return *this;
30767     }
30768 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
30769 
30770 
operator VkDeviceQueueCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30771     operator VkDeviceQueueCreateInfo const&() const VULKAN_HPP_NOEXCEPT
30772     {
30773       return *reinterpret_cast<const VkDeviceQueueCreateInfo*>( this );
30774     }
30775 
operator VkDeviceQueueCreateInfo&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30776     operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
30777     {
30778       return *reinterpret_cast<VkDeviceQueueCreateInfo*>( this );
30779     }
30780 
30781 
30782 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
30783     auto operator<=>( DeviceQueueCreateInfo const& ) const = default;
30784 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30785     bool operator==( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30786     {
30787       return ( sType == rhs.sType )
30788           && ( pNext == rhs.pNext )
30789           && ( flags == rhs.flags )
30790           && ( queueFamilyIndex == rhs.queueFamilyIndex )
30791           && ( queueCount == rhs.queueCount )
30792           && ( pQueuePriorities == rhs.pQueuePriorities );
30793     }
30794 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo30795     bool operator!=( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
30796     {
30797       return !operator==( rhs );
30798     }
30799 #endif
30800 
30801 
30802 
30803   public:
30804     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo;
30805     const void* pNext = {};
30806     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
30807     uint32_t queueFamilyIndex = {};
30808     uint32_t queueCount = {};
30809     const float* pQueuePriorities = {};
30810 
30811   };
30812   static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" );
30813   static_assert( std::is_standard_layout<DeviceQueueCreateInfo>::value, "struct wrapper is not a standard layout!" );
30814 
30815   template <>
30816   struct CppType<StructureType, StructureType::eDeviceQueueCreateInfo>
30817   {
30818     using Type = DeviceQueueCreateInfo;
30819   };
30820 
30821   struct PhysicalDeviceFeatures
30822   {
30823 
30824 
30825 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30826     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 logicOp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ = {}, VULKAN_HPP_NAMESPACE::Bool32 wideLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 largePoints_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ = {}, VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ = {}, VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {}) VULKAN_HPP_NOEXCEPT
30827     : robustBufferAccess( robustBufferAccess_ ), fullDrawIndexUint32( fullDrawIndexUint32_ ), imageCubeArray( imageCubeArray_ ), independentBlend( independentBlend_ ), geometryShader( geometryShader_ ), tessellationShader( tessellationShader_ ), sampleRateShading( sampleRateShading_ ), dualSrcBlend( dualSrcBlend_ ), logicOp( logicOp_ ), multiDrawIndirect( multiDrawIndirect_ ), drawIndirectFirstInstance( drawIndirectFirstInstance_ ), depthClamp( depthClamp_ ), depthBiasClamp( depthBiasClamp_ ), fillModeNonSolid( fillModeNonSolid_ ), depthBounds( depthBounds_ ), wideLines( wideLines_ ), largePoints( largePoints_ ), alphaToOne( alphaToOne_ ), multiViewport( multiViewport_ ), samplerAnisotropy( samplerAnisotropy_ ), textureCompressionETC2( textureCompressionETC2_ ), textureCompressionASTC_LDR( textureCompressionASTC_LDR_ ), textureCompressionBC( textureCompressionBC_ ), occlusionQueryPrecise( occlusionQueryPrecise_ ), pipelineStatisticsQuery( pipelineStatisticsQuery_ ), vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ ), fragmentStoresAndAtomics( fragmentStoresAndAtomics_ ), shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ ), shaderImageGatherExtended( shaderImageGatherExtended_ ), shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ ), shaderStorageImageMultisample( shaderStorageImageMultisample_ ), shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ ), shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ ), shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ ), shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ ), shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ ), shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ ), shaderClipDistance( shaderClipDistance_ ), shaderCullDistance( shaderCullDistance_ ), shaderFloat64( shaderFloat64_ ), shaderInt64( shaderInt64_ ), shaderInt16( shaderInt16_ ), shaderResourceResidency( shaderResourceResidency_ ), shaderResourceMinLod( shaderResourceMinLod_ ), sparseBinding( sparseBinding_ ), sparseResidencyBuffer( sparseResidencyBuffer_ ), sparseResidencyImage2D( sparseResidencyImage2D_ ), sparseResidencyImage3D( sparseResidencyImage3D_ ), sparseResidency2Samples( sparseResidency2Samples_ ), sparseResidency4Samples( sparseResidency4Samples_ ), sparseResidency8Samples( sparseResidency8Samples_ ), sparseResidency16Samples( sparseResidency16Samples_ ), sparseResidencyAliased( sparseResidencyAliased_ ), variableMultisampleRate( variableMultisampleRate_ ), inheritedQueries( inheritedQueries_ )
30828     {}
30829 
30830     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
30831 
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30832     PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
30833     {
30834       *this = rhs;
30835     }
30836 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
30837 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30838     PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
30839     {
30840       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const *>( &rhs );
30841       return *this;
30842     }
30843 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30844     PhysicalDeviceFeatures & operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
30845     {
30846       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFeatures ) );
30847       return *this;
30848     }
30849 
setRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30850     PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
30851     {
30852       robustBufferAccess = robustBufferAccess_;
30853       return *this;
30854     }
30855 
setFullDrawIndexUint32VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30856     PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT
30857     {
30858       fullDrawIndexUint32 = fullDrawIndexUint32_;
30859       return *this;
30860     }
30861 
setImageCubeArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30862     PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT
30863     {
30864       imageCubeArray = imageCubeArray_;
30865       return *this;
30866     }
30867 
setIndependentBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30868     PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT
30869     {
30870       independentBlend = independentBlend_;
30871       return *this;
30872     }
30873 
setGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30874     PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT
30875     {
30876       geometryShader = geometryShader_;
30877       return *this;
30878     }
30879 
setTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30880     PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT
30881     {
30882       tessellationShader = tessellationShader_;
30883       return *this;
30884     }
30885 
setSampleRateShadingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30886     PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT
30887     {
30888       sampleRateShading = sampleRateShading_;
30889       return *this;
30890     }
30891 
setDualSrcBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30892     PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT
30893     {
30894       dualSrcBlend = dualSrcBlend_;
30895       return *this;
30896     }
30897 
setLogicOpVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30898     PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT
30899     {
30900       logicOp = logicOp_;
30901       return *this;
30902     }
30903 
setMultiDrawIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30904     PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT
30905     {
30906       multiDrawIndirect = multiDrawIndirect_;
30907       return *this;
30908     }
30909 
setDrawIndirectFirstInstanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30910     PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT
30911     {
30912       drawIndirectFirstInstance = drawIndirectFirstInstance_;
30913       return *this;
30914     }
30915 
setDepthClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30916     PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT
30917     {
30918       depthClamp = depthClamp_;
30919       return *this;
30920     }
30921 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30922     PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
30923     {
30924       depthBiasClamp = depthBiasClamp_;
30925       return *this;
30926     }
30927 
setFillModeNonSolidVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30928     PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT
30929     {
30930       fillModeNonSolid = fillModeNonSolid_;
30931       return *this;
30932     }
30933 
setDepthBoundsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30934     PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT
30935     {
30936       depthBounds = depthBounds_;
30937       return *this;
30938     }
30939 
setWideLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30940     PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT
30941     {
30942       wideLines = wideLines_;
30943       return *this;
30944     }
30945 
setLargePointsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30946     PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT
30947     {
30948       largePoints = largePoints_;
30949       return *this;
30950     }
30951 
setAlphaToOneVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30952     PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT
30953     {
30954       alphaToOne = alphaToOne_;
30955       return *this;
30956     }
30957 
setMultiViewportVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30958     PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT
30959     {
30960       multiViewport = multiViewport_;
30961       return *this;
30962     }
30963 
setSamplerAnisotropyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30964     PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT
30965     {
30966       samplerAnisotropy = samplerAnisotropy_;
30967       return *this;
30968     }
30969 
setTextureCompressionETC2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30970     PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT
30971     {
30972       textureCompressionETC2 = textureCompressionETC2_;
30973       return *this;
30974     }
30975 
setTextureCompressionASTC_LDRVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30976     PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
30977     {
30978       textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
30979       return *this;
30980     }
30981 
setTextureCompressionBCVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30982     PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT
30983     {
30984       textureCompressionBC = textureCompressionBC_;
30985       return *this;
30986     }
30987 
setOcclusionQueryPreciseVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30988     PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT
30989     {
30990       occlusionQueryPrecise = occlusionQueryPrecise_;
30991       return *this;
30992     }
30993 
setPipelineStatisticsQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures30994     PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT
30995     {
30996       pipelineStatisticsQuery = pipelineStatisticsQuery_;
30997       return *this;
30998     }
30999 
setVertexPipelineStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31000     PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
31001     {
31002       vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
31003       return *this;
31004     }
31005 
setFragmentStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31006     PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
31007     {
31008       fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
31009       return *this;
31010     }
31011 
setShaderTessellationAndGeometryPointSizeVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31012     PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT
31013     {
31014       shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
31015       return *this;
31016     }
31017 
setShaderImageGatherExtendedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31018     PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT
31019     {
31020       shaderImageGatherExtended = shaderImageGatherExtended_;
31021       return *this;
31022     }
31023 
setShaderStorageImageExtendedFormatsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31024     PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
31025     {
31026       shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
31027       return *this;
31028     }
31029 
setShaderStorageImageMultisampleVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31030     PhysicalDeviceFeatures & setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
31031     {
31032       shaderStorageImageMultisample = shaderStorageImageMultisample_;
31033       return *this;
31034     }
31035 
setShaderStorageImageReadWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31036     PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
31037     {
31038       shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
31039       return *this;
31040     }
31041 
setShaderStorageImageWriteWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31042     PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
31043     {
31044       shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
31045       return *this;
31046     }
31047 
setShaderUniformBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31048     PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
31049     {
31050       shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
31051       return *this;
31052     }
31053 
setShaderSampledImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31054     PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
31055     {
31056       shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
31057       return *this;
31058     }
31059 
setShaderStorageBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31060     PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
31061     {
31062       shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
31063       return *this;
31064     }
31065 
setShaderStorageImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31066     PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
31067     {
31068       shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
31069       return *this;
31070     }
31071 
setShaderClipDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31072     PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT
31073     {
31074       shaderClipDistance = shaderClipDistance_;
31075       return *this;
31076     }
31077 
setShaderCullDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31078     PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT
31079     {
31080       shaderCullDistance = shaderCullDistance_;
31081       return *this;
31082     }
31083 
setShaderFloat64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31084     PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT
31085     {
31086       shaderFloat64 = shaderFloat64_;
31087       return *this;
31088     }
31089 
setShaderInt64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31090     PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT
31091     {
31092       shaderInt64 = shaderInt64_;
31093       return *this;
31094     }
31095 
setShaderInt16VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31096     PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT
31097     {
31098       shaderInt16 = shaderInt16_;
31099       return *this;
31100     }
31101 
setShaderResourceResidencyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31102     PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT
31103     {
31104       shaderResourceResidency = shaderResourceResidency_;
31105       return *this;
31106     }
31107 
setShaderResourceMinLodVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31108     PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT
31109     {
31110       shaderResourceMinLod = shaderResourceMinLod_;
31111       return *this;
31112     }
31113 
setSparseBindingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31114     PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT
31115     {
31116       sparseBinding = sparseBinding_;
31117       return *this;
31118     }
31119 
setSparseResidencyBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31120     PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT
31121     {
31122       sparseResidencyBuffer = sparseResidencyBuffer_;
31123       return *this;
31124     }
31125 
setSparseResidencyImage2DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31126     PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT
31127     {
31128       sparseResidencyImage2D = sparseResidencyImage2D_;
31129       return *this;
31130     }
31131 
setSparseResidencyImage3DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31132     PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT
31133     {
31134       sparseResidencyImage3D = sparseResidencyImage3D_;
31135       return *this;
31136     }
31137 
setSparseResidency2SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31138     PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT
31139     {
31140       sparseResidency2Samples = sparseResidency2Samples_;
31141       return *this;
31142     }
31143 
setSparseResidency4SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31144     PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT
31145     {
31146       sparseResidency4Samples = sparseResidency4Samples_;
31147       return *this;
31148     }
31149 
setSparseResidency8SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31150     PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT
31151     {
31152       sparseResidency8Samples = sparseResidency8Samples_;
31153       return *this;
31154     }
31155 
setSparseResidency16SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31156     PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT
31157     {
31158       sparseResidency16Samples = sparseResidency16Samples_;
31159       return *this;
31160     }
31161 
setSparseResidencyAliasedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31162     PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT
31163     {
31164       sparseResidencyAliased = sparseResidencyAliased_;
31165       return *this;
31166     }
31167 
setVariableMultisampleRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31168     PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT
31169     {
31170       variableMultisampleRate = variableMultisampleRate_;
31171       return *this;
31172     }
31173 
setInheritedQueriesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31174     PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT
31175     {
31176       inheritedQueries = inheritedQueries_;
31177       return *this;
31178     }
31179 
31180 
operator VkPhysicalDeviceFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31181     operator VkPhysicalDeviceFeatures const&() const VULKAN_HPP_NOEXCEPT
31182     {
31183       return *reinterpret_cast<const VkPhysicalDeviceFeatures*>( this );
31184     }
31185 
operator VkPhysicalDeviceFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31186     operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
31187     {
31188       return *reinterpret_cast<VkPhysicalDeviceFeatures*>( this );
31189     }
31190 
31191 
31192 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31193     auto operator<=>( PhysicalDeviceFeatures const& ) const = default;
31194 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31195     bool operator==( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
31196     {
31197       return ( robustBufferAccess == rhs.robustBufferAccess )
31198           && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 )
31199           && ( imageCubeArray == rhs.imageCubeArray )
31200           && ( independentBlend == rhs.independentBlend )
31201           && ( geometryShader == rhs.geometryShader )
31202           && ( tessellationShader == rhs.tessellationShader )
31203           && ( sampleRateShading == rhs.sampleRateShading )
31204           && ( dualSrcBlend == rhs.dualSrcBlend )
31205           && ( logicOp == rhs.logicOp )
31206           && ( multiDrawIndirect == rhs.multiDrawIndirect )
31207           && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance )
31208           && ( depthClamp == rhs.depthClamp )
31209           && ( depthBiasClamp == rhs.depthBiasClamp )
31210           && ( fillModeNonSolid == rhs.fillModeNonSolid )
31211           && ( depthBounds == rhs.depthBounds )
31212           && ( wideLines == rhs.wideLines )
31213           && ( largePoints == rhs.largePoints )
31214           && ( alphaToOne == rhs.alphaToOne )
31215           && ( multiViewport == rhs.multiViewport )
31216           && ( samplerAnisotropy == rhs.samplerAnisotropy )
31217           && ( textureCompressionETC2 == rhs.textureCompressionETC2 )
31218           && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR )
31219           && ( textureCompressionBC == rhs.textureCompressionBC )
31220           && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise )
31221           && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery )
31222           && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics )
31223           && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics )
31224           && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize )
31225           && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended )
31226           && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats )
31227           && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample )
31228           && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat )
31229           && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat )
31230           && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing )
31231           && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing )
31232           && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing )
31233           && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing )
31234           && ( shaderClipDistance == rhs.shaderClipDistance )
31235           && ( shaderCullDistance == rhs.shaderCullDistance )
31236           && ( shaderFloat64 == rhs.shaderFloat64 )
31237           && ( shaderInt64 == rhs.shaderInt64 )
31238           && ( shaderInt16 == rhs.shaderInt16 )
31239           && ( shaderResourceResidency == rhs.shaderResourceResidency )
31240           && ( shaderResourceMinLod == rhs.shaderResourceMinLod )
31241           && ( sparseBinding == rhs.sparseBinding )
31242           && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer )
31243           && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D )
31244           && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D )
31245           && ( sparseResidency2Samples == rhs.sparseResidency2Samples )
31246           && ( sparseResidency4Samples == rhs.sparseResidency4Samples )
31247           && ( sparseResidency8Samples == rhs.sparseResidency8Samples )
31248           && ( sparseResidency16Samples == rhs.sparseResidency16Samples )
31249           && ( sparseResidencyAliased == rhs.sparseResidencyAliased )
31250           && ( variableMultisampleRate == rhs.variableMultisampleRate )
31251           && ( inheritedQueries == rhs.inheritedQueries );
31252     }
31253 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures31254     bool operator!=( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
31255     {
31256       return !operator==( rhs );
31257     }
31258 #endif
31259 
31260 
31261 
31262   public:
31263     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {};
31264     VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {};
31265     VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {};
31266     VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {};
31267     VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {};
31268     VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {};
31269     VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {};
31270     VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {};
31271     VULKAN_HPP_NAMESPACE::Bool32 logicOp = {};
31272     VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {};
31273     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {};
31274     VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {};
31275     VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {};
31276     VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {};
31277     VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {};
31278     VULKAN_HPP_NAMESPACE::Bool32 wideLines = {};
31279     VULKAN_HPP_NAMESPACE::Bool32 largePoints = {};
31280     VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {};
31281     VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {};
31282     VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {};
31283     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {};
31284     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {};
31285     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {};
31286     VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {};
31287     VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {};
31288     VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {};
31289     VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {};
31290     VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {};
31291     VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {};
31292     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {};
31293     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {};
31294     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {};
31295     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {};
31296     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {};
31297     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {};
31298     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {};
31299     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {};
31300     VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {};
31301     VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {};
31302     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {};
31303     VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {};
31304     VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {};
31305     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {};
31306     VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {};
31307     VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {};
31308     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {};
31309     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {};
31310     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {};
31311     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {};
31312     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {};
31313     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {};
31314     VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {};
31315     VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {};
31316     VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {};
31317     VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {};
31318 
31319   };
31320   static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" );
31321   static_assert( std::is_standard_layout<PhysicalDeviceFeatures>::value, "struct wrapper is not a standard layout!" );
31322 
31323   struct DeviceCreateInfo
31324   {
31325     static const bool allowDuplicate = false;
31326     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo;
31327 
31328 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo31329     VULKAN_HPP_CONSTEXPR DeviceCreateInfo(VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ = {}, uint32_t queueCreateInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ = {}, uint32_t enabledLayerCount_ = {}, const char* const * ppEnabledLayerNames_ = {}, uint32_t enabledExtensionCount_ = {}, const char* const * ppEnabledExtensionNames_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ = {}) VULKAN_HPP_NOEXCEPT
31330     : flags( flags_ ), queueCreateInfoCount( queueCreateInfoCount_ ), pQueueCreateInfos( pQueueCreateInfos_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ ), pEnabledFeatures( pEnabledFeatures_ )
31331     {}
31332 
31333     VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31334 
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo31335     DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31336     {
31337       *this = rhs;
31338     }
31339 
31340 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo31341     DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ = {} )
31342     : flags( flags_ ), queueCreateInfoCount( static_cast<uint32_t>( queueCreateInfos_.size() ) ), pQueueCreateInfos( queueCreateInfos_.data() ), enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() ), pEnabledFeatures( pEnabledFeatures_ )
31343     {}
31344 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31345 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31346 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo31347     DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31348     {
31349       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceCreateInfo const *>( &rhs );
31350       return *this;
31351     }
31352 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo31353     DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31354     {
31355       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceCreateInfo ) );
31356       return *this;
31357     }
31358 
setPNextVULKAN_HPP_NAMESPACE::DeviceCreateInfo31359     DeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31360     {
31361       pNext = pNext_;
31362       return *this;
31363     }
31364 
setFlagsVULKAN_HPP_NAMESPACE::DeviceCreateInfo31365     DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
31366     {
31367       flags = flags_;
31368       return *this;
31369     }
31370 
setQueueCreateInfoCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo31371     DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT
31372     {
31373       queueCreateInfoCount = queueCreateInfoCount_;
31374       return *this;
31375     }
31376 
setPQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo31377     DeviceCreateInfo & setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
31378     {
31379       pQueueCreateInfos = pQueueCreateInfos_;
31380       return *this;
31381     }
31382 
31383 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo31384     DeviceCreateInfo & setQueueCreateInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
31385     {
31386       queueCreateInfoCount = static_cast<uint32_t>( queueCreateInfos_.size() );
31387       pQueueCreateInfos = queueCreateInfos_.data();
31388       return *this;
31389     }
31390 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31391 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo31392     DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
31393     {
31394       enabledLayerCount = enabledLayerCount_;
31395       return *this;
31396     }
31397 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31398     DeviceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
31399     {
31400       ppEnabledLayerNames = ppEnabledLayerNames_;
31401       return *this;
31402     }
31403 
31404 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31405     DeviceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
31406     {
31407       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
31408       ppEnabledLayerNames = pEnabledLayerNames_.data();
31409       return *this;
31410     }
31411 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31412 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo31413     DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
31414     {
31415       enabledExtensionCount = enabledExtensionCount_;
31416       return *this;
31417     }
31418 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31419     DeviceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
31420     {
31421       ppEnabledExtensionNames = ppEnabledExtensionNames_;
31422       return *this;
31423     }
31424 
31425 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31426     DeviceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
31427     {
31428       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
31429       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
31430       return *this;
31431     }
31432 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
31433 
setPEnabledFeaturesVULKAN_HPP_NAMESPACE::DeviceCreateInfo31434     DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT
31435     {
31436       pEnabledFeatures = pEnabledFeatures_;
31437       return *this;
31438     }
31439 
31440 
operator VkDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceCreateInfo31441     operator VkDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
31442     {
31443       return *reinterpret_cast<const VkDeviceCreateInfo*>( this );
31444     }
31445 
operator VkDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceCreateInfo31446     operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
31447     {
31448       return *reinterpret_cast<VkDeviceCreateInfo*>( this );
31449     }
31450 
31451 
31452 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31453     auto operator<=>( DeviceCreateInfo const& ) const = default;
31454 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceCreateInfo31455     bool operator==( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31456     {
31457       return ( sType == rhs.sType )
31458           && ( pNext == rhs.pNext )
31459           && ( flags == rhs.flags )
31460           && ( queueCreateInfoCount == rhs.queueCreateInfoCount )
31461           && ( pQueueCreateInfos == rhs.pQueueCreateInfos )
31462           && ( enabledLayerCount == rhs.enabledLayerCount )
31463           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
31464           && ( enabledExtensionCount == rhs.enabledExtensionCount )
31465           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames )
31466           && ( pEnabledFeatures == rhs.pEnabledFeatures );
31467     }
31468 
operator !=VULKAN_HPP_NAMESPACE::DeviceCreateInfo31469     bool operator!=( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31470     {
31471       return !operator==( rhs );
31472     }
31473 #endif
31474 
31475 
31476 
31477   public:
31478     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo;
31479     const void* pNext = {};
31480     VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {};
31481     uint32_t queueCreateInfoCount = {};
31482     const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos = {};
31483     uint32_t enabledLayerCount = {};
31484     const char* const * ppEnabledLayerNames = {};
31485     uint32_t enabledExtensionCount = {};
31486     const char* const * ppEnabledExtensionNames = {};
31487     const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures = {};
31488 
31489   };
31490   static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" );
31491   static_assert( std::is_standard_layout<DeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
31492 
31493   template <>
31494   struct CppType<StructureType, StructureType::eDeviceCreateInfo>
31495   {
31496     using Type = DeviceCreateInfo;
31497   };
31498 
31499   struct DeviceDeviceMemoryReportCreateInfoEXT
31500   {
31501     static const bool allowDuplicate = true;
31502     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
31503 
31504 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31505     VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
31506     : flags( flags_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ )
31507     {}
31508 
31509     VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31510 
DeviceDeviceMemoryReportCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31511     DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31512     {
31513       *this = rhs;
31514     }
31515 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31516 
operator =VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31517     DeviceDeviceMemoryReportCreateInfoEXT & operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31518     {
31519       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs );
31520       return *this;
31521     }
31522 
operator =VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31523     DeviceDeviceMemoryReportCreateInfoEXT & operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31524     {
31525       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) );
31526       return *this;
31527     }
31528 
setPNextVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31529     DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31530     {
31531       pNext = pNext_;
31532       return *this;
31533     }
31534 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31535     DeviceDeviceMemoryReportCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
31536     {
31537       flags = flags_;
31538       return *this;
31539     }
31540 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31541     DeviceDeviceMemoryReportCreateInfoEXT & setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
31542     {
31543       pfnUserCallback = pfnUserCallback_;
31544       return *this;
31545     }
31546 
setPUserDataVULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31547     DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
31548     {
31549       pUserData = pUserData_;
31550       return *this;
31551     }
31552 
31553 
operator VkDeviceDeviceMemoryReportCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31554     operator VkDeviceDeviceMemoryReportCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31555     {
31556       return *reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
31557     }
31558 
operator VkDeviceDeviceMemoryReportCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31559     operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
31560     {
31561       return *reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>( this );
31562     }
31563 
31564 
31565 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31566     auto operator<=>( DeviceDeviceMemoryReportCreateInfoEXT const& ) const = default;
31567 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31568     bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31569     {
31570       return ( sType == rhs.sType )
31571           && ( pNext == rhs.pNext )
31572           && ( flags == rhs.flags )
31573           && ( pfnUserCallback == rhs.pfnUserCallback )
31574           && ( pUserData == rhs.pUserData );
31575     }
31576 
operator !=VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT31577     bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31578     {
31579       return !operator==( rhs );
31580     }
31581 #endif
31582 
31583 
31584 
31585   public:
31586     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
31587     const void* pNext = {};
31588     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
31589     PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {};
31590     void* pUserData = {};
31591 
31592   };
31593   static_assert( sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) == sizeof( VkDeviceDeviceMemoryReportCreateInfoEXT ), "struct and wrapper have different size!" );
31594   static_assert( std::is_standard_layout<DeviceDeviceMemoryReportCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
31595 
31596   template <>
31597   struct CppType<StructureType, StructureType::eDeviceDeviceMemoryReportCreateInfoEXT>
31598   {
31599     using Type = DeviceDeviceMemoryReportCreateInfoEXT;
31600   };
31601 
31602   struct DeviceDiagnosticsConfigCreateInfoNV
31603   {
31604     static const bool allowDuplicate = false;
31605     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
31606 
31607 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31608     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {}) VULKAN_HPP_NOEXCEPT
31609     : flags( flags_ )
31610     {}
31611 
31612     VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31613 
DeviceDiagnosticsConfigCreateInfoNVVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31614     DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31615     {
31616       *this = rhs;
31617     }
31618 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31619 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31620     DeviceDiagnosticsConfigCreateInfoNV & operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31621     {
31622       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs );
31623       return *this;
31624     }
31625 
operator =VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31626     DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
31627     {
31628       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceDiagnosticsConfigCreateInfoNV ) );
31629       return *this;
31630     }
31631 
setPNextVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31632     DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31633     {
31634       pNext = pNext_;
31635       return *this;
31636     }
31637 
setFlagsVULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31638     DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
31639     {
31640       flags = flags_;
31641       return *this;
31642     }
31643 
31644 
operator VkDeviceDiagnosticsConfigCreateInfoNV const&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31645     operator VkDeviceDiagnosticsConfigCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
31646     {
31647       return *reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
31648     }
31649 
operator VkDeviceDiagnosticsConfigCreateInfoNV&VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31650     operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
31651     {
31652       return *reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>( this );
31653     }
31654 
31655 
31656 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31657     auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const& ) const = default;
31658 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31659     bool operator==( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
31660     {
31661       return ( sType == rhs.sType )
31662           && ( pNext == rhs.pNext )
31663           && ( flags == rhs.flags );
31664     }
31665 
operator !=VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV31666     bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
31667     {
31668       return !operator==( rhs );
31669     }
31670 #endif
31671 
31672 
31673 
31674   public:
31675     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
31676     const void* pNext = {};
31677     VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {};
31678 
31679   };
31680   static_assert( sizeof( DeviceDiagnosticsConfigCreateInfoNV ) == sizeof( VkDeviceDiagnosticsConfigCreateInfoNV ), "struct and wrapper have different size!" );
31681   static_assert( std::is_standard_layout<DeviceDiagnosticsConfigCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
31682 
31683   template <>
31684   struct CppType<StructureType, StructureType::eDeviceDiagnosticsConfigCreateInfoNV>
31685   {
31686     using Type = DeviceDiagnosticsConfigCreateInfoNV;
31687   };
31688 
31689   struct DeviceEventInfoEXT
31690   {
31691     static const bool allowDuplicate = false;
31692     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT;
31693 
31694 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31695     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT(VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug) VULKAN_HPP_NOEXCEPT
31696     : deviceEvent( deviceEvent_ )
31697     {}
31698 
31699     VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31700 
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31701     DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31702     {
31703       *this = rhs;
31704     }
31705 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31706 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31707     DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31708     {
31709       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const *>( &rhs );
31710       return *this;
31711     }
31712 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31713     DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
31714     {
31715       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceEventInfoEXT ) );
31716       return *this;
31717     }
31718 
setPNextVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31719     DeviceEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31720     {
31721       pNext = pNext_;
31722       return *this;
31723     }
31724 
setDeviceEventVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31725     DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT
31726     {
31727       deviceEvent = deviceEvent_;
31728       return *this;
31729     }
31730 
31731 
operator VkDeviceEventInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31732     operator VkDeviceEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
31733     {
31734       return *reinterpret_cast<const VkDeviceEventInfoEXT*>( this );
31735     }
31736 
operator VkDeviceEventInfoEXT&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31737     operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
31738     {
31739       return *reinterpret_cast<VkDeviceEventInfoEXT*>( this );
31740     }
31741 
31742 
31743 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31744     auto operator<=>( DeviceEventInfoEXT const& ) const = default;
31745 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31746     bool operator==( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31747     {
31748       return ( sType == rhs.sType )
31749           && ( pNext == rhs.pNext )
31750           && ( deviceEvent == rhs.deviceEvent );
31751     }
31752 
operator !=VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT31753     bool operator!=( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
31754     {
31755       return !operator==( rhs );
31756     }
31757 #endif
31758 
31759 
31760 
31761   public:
31762     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT;
31763     const void* pNext = {};
31764     VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug;
31765 
31766   };
31767   static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" );
31768   static_assert( std::is_standard_layout<DeviceEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
31769 
31770   template <>
31771   struct CppType<StructureType, StructureType::eDeviceEventInfoEXT>
31772   {
31773     using Type = DeviceEventInfoEXT;
31774   };
31775 
31776   struct DeviceGroupBindSparseInfo
31777   {
31778     static const bool allowDuplicate = false;
31779     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo;
31780 
31781 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31782     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo(uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}) VULKAN_HPP_NOEXCEPT
31783     : resourceDeviceIndex( resourceDeviceIndex_ ), memoryDeviceIndex( memoryDeviceIndex_ )
31784     {}
31785 
31786     VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31787 
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31788     DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31789     {
31790       *this = rhs;
31791     }
31792 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31793 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31794     DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31795     {
31796       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const *>( &rhs );
31797       return *this;
31798     }
31799 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31800     DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31801     {
31802       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupBindSparseInfo ) );
31803       return *this;
31804     }
31805 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31806     DeviceGroupBindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31807     {
31808       pNext = pNext_;
31809       return *this;
31810     }
31811 
setResourceDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31812     DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
31813     {
31814       resourceDeviceIndex = resourceDeviceIndex_;
31815       return *this;
31816     }
31817 
setMemoryDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31818     DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
31819     {
31820       memoryDeviceIndex = memoryDeviceIndex_;
31821       return *this;
31822     }
31823 
31824 
operator VkDeviceGroupBindSparseInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31825     operator VkDeviceGroupBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT
31826     {
31827       return *reinterpret_cast<const VkDeviceGroupBindSparseInfo*>( this );
31828     }
31829 
operator VkDeviceGroupBindSparseInfo&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31830     operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
31831     {
31832       return *reinterpret_cast<VkDeviceGroupBindSparseInfo*>( this );
31833     }
31834 
31835 
31836 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31837     auto operator<=>( DeviceGroupBindSparseInfo const& ) const = default;
31838 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31839     bool operator==( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31840     {
31841       return ( sType == rhs.sType )
31842           && ( pNext == rhs.pNext )
31843           && ( resourceDeviceIndex == rhs.resourceDeviceIndex )
31844           && ( memoryDeviceIndex == rhs.memoryDeviceIndex );
31845     }
31846 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo31847     bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31848     {
31849       return !operator==( rhs );
31850     }
31851 #endif
31852 
31853 
31854 
31855   public:
31856     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
31857     const void* pNext = {};
31858     uint32_t resourceDeviceIndex = {};
31859     uint32_t memoryDeviceIndex = {};
31860 
31861   };
31862   static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" );
31863   static_assert( std::is_standard_layout<DeviceGroupBindSparseInfo>::value, "struct wrapper is not a standard layout!" );
31864 
31865   template <>
31866   struct CppType<StructureType, StructureType::eDeviceGroupBindSparseInfo>
31867   {
31868     using Type = DeviceGroupBindSparseInfo;
31869   };
31870   using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
31871 
31872   struct DeviceGroupCommandBufferBeginInfo
31873   {
31874     static const bool allowDuplicate = false;
31875     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo;
31876 
31877 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31878     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo(uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
31879     : deviceMask( deviceMask_ )
31880     {}
31881 
31882     VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31883 
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31884     DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31885     {
31886       *this = rhs;
31887     }
31888 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
31889 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31890     DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31891     {
31892       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const *>( &rhs );
31893       return *this;
31894     }
31895 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31896     DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
31897     {
31898       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupCommandBufferBeginInfo ) );
31899       return *this;
31900     }
31901 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31902     DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
31903     {
31904       pNext = pNext_;
31905       return *this;
31906     }
31907 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31908     DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
31909     {
31910       deviceMask = deviceMask_;
31911       return *this;
31912     }
31913 
31914 
operator VkDeviceGroupCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31915     operator VkDeviceGroupCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT
31916     {
31917       return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>( this );
31918     }
31919 
operator VkDeviceGroupCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31920     operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
31921     {
31922       return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>( this );
31923     }
31924 
31925 
31926 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31927     auto operator<=>( DeviceGroupCommandBufferBeginInfo const& ) const = default;
31928 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31929     bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31930     {
31931       return ( sType == rhs.sType )
31932           && ( pNext == rhs.pNext )
31933           && ( deviceMask == rhs.deviceMask );
31934     }
31935 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo31936     bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
31937     {
31938       return !operator==( rhs );
31939     }
31940 #endif
31941 
31942 
31943 
31944   public:
31945     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
31946     const void* pNext = {};
31947     uint32_t deviceMask = {};
31948 
31949   };
31950   static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" );
31951   static_assert( std::is_standard_layout<DeviceGroupCommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
31952 
31953   template <>
31954   struct CppType<StructureType, StructureType::eDeviceGroupCommandBufferBeginInfo>
31955   {
31956     using Type = DeviceGroupCommandBufferBeginInfo;
31957   };
31958   using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
31959 
31960   class DisplayKHR
31961   {
31962   public:
31963     using CType = VkDisplayKHR;
31964 
31965     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR;
31966     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
31967 
31968   public:
DisplayKHR()31969     VULKAN_HPP_CONSTEXPR DisplayKHR() VULKAN_HPP_NOEXCEPT
31970       : m_displayKHR(VK_NULL_HANDLE)
31971     {}
31972 
DisplayKHR(std::nullptr_t)31973     VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31974       : m_displayKHR(VK_NULL_HANDLE)
31975     {}
31976 
DisplayKHR(VkDisplayKHR displayKHR)31977     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT
31978       : m_displayKHR( displayKHR )
31979     {}
31980 
31981 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayKHR displayKHR)31982     DisplayKHR & operator=(VkDisplayKHR displayKHR) VULKAN_HPP_NOEXCEPT
31983     {
31984       m_displayKHR = displayKHR;
31985       return *this;
31986     }
31987 #endif
31988 
operator =(std::nullptr_t)31989     DisplayKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
31990     {
31991       m_displayKHR = VK_NULL_HANDLE;
31992       return *this;
31993     }
31994 
31995 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
31996     auto operator<=>( DisplayKHR const& ) const = default;
31997 #else
operator ==(DisplayKHR const & rhs) const31998     bool operator==( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
31999     {
32000       return m_displayKHR == rhs.m_displayKHR;
32001     }
32002 
operator !=(DisplayKHR const & rhs) const32003     bool operator!=(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
32004     {
32005       return m_displayKHR != rhs.m_displayKHR;
32006     }
32007 
operator <(DisplayKHR const & rhs) const32008     bool operator<(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
32009     {
32010       return m_displayKHR < rhs.m_displayKHR;
32011     }
32012 #endif
32013 
operator VkDisplayKHR() const32014     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const VULKAN_HPP_NOEXCEPT
32015     {
32016       return m_displayKHR;
32017     }
32018 
operator bool() const32019     explicit operator bool() const VULKAN_HPP_NOEXCEPT
32020     {
32021       return m_displayKHR != VK_NULL_HANDLE;
32022     }
32023 
operator !() const32024     bool operator!() const VULKAN_HPP_NOEXCEPT
32025     {
32026       return m_displayKHR == VK_NULL_HANDLE;
32027     }
32028 
32029   private:
32030     VkDisplayKHR m_displayKHR;
32031   };
32032   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" );
32033 
32034   template <>
32035   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayKHR>
32036   {
32037     using type = VULKAN_HPP_NAMESPACE::DisplayKHR;
32038   };
32039 
32040   template <>
32041   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR>
32042   {
32043     using Type = VULKAN_HPP_NAMESPACE::DisplayKHR;
32044   };
32045 
32046 
32047   template <>
32048   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR>
32049   {
32050     using Type = VULKAN_HPP_NAMESPACE::DisplayKHR;
32051   };
32052 
32053 
32054   template <>
32055   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DisplayKHR>
32056   {
32057     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
32058   };
32059 
32060   struct PerformanceConfigurationAcquireInfoINTEL
32061   {
32062     static const bool allowDuplicate = false;
32063     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
32064 
32065 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32066     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated) VULKAN_HPP_NOEXCEPT
32067     : type( type_ )
32068     {}
32069 
32070     VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32071 
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32072     PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
32073     {
32074       *this = rhs;
32075     }
32076 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32077 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32078     PerformanceConfigurationAcquireInfoINTEL & operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
32079     {
32080       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const *>( &rhs );
32081       return *this;
32082     }
32083 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32084     PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
32085     {
32086       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceConfigurationAcquireInfoINTEL ) );
32087       return *this;
32088     }
32089 
setPNextVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32090     PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32091     {
32092       pNext = pNext_;
32093       return *this;
32094     }
32095 
setTypeVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32096     PerformanceConfigurationAcquireInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
32097     {
32098       type = type_;
32099       return *this;
32100     }
32101 
32102 
operator VkPerformanceConfigurationAcquireInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32103     operator VkPerformanceConfigurationAcquireInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
32104     {
32105       return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( this );
32106     }
32107 
operator VkPerformanceConfigurationAcquireInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32108     operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
32109     {
32110       return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>( this );
32111     }
32112 
32113 
32114 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32115     auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const& ) const = default;
32116 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32117     bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
32118     {
32119       return ( sType == rhs.sType )
32120           && ( pNext == rhs.pNext )
32121           && ( type == rhs.type );
32122     }
32123 
operator !=VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL32124     bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
32125     {
32126       return !operator==( rhs );
32127     }
32128 #endif
32129 
32130 
32131 
32132   public:
32133     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
32134     const void* pNext = {};
32135     VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated;
32136 
32137   };
32138   static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" );
32139   static_assert( std::is_standard_layout<PerformanceConfigurationAcquireInfoINTEL>::value, "struct wrapper is not a standard layout!" );
32140 
32141   template <>
32142   struct CppType<StructureType, StructureType::ePerformanceConfigurationAcquireInfoINTEL>
32143   {
32144     using Type = PerformanceConfigurationAcquireInfoINTEL;
32145   };
32146 
32147   class PerformanceConfigurationINTEL
32148   {
32149   public:
32150     using CType = VkPerformanceConfigurationINTEL;
32151 
32152     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL;
32153     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
32154 
32155   public:
PerformanceConfigurationINTEL()32156     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() VULKAN_HPP_NOEXCEPT
32157       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
32158     {}
32159 
PerformanceConfigurationINTEL(std::nullptr_t)32160     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32161       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
32162     {}
32163 
PerformanceConfigurationINTEL(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)32164     VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT
32165       : m_performanceConfigurationINTEL( performanceConfigurationINTEL )
32166     {}
32167 
32168 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)32169     PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL) VULKAN_HPP_NOEXCEPT
32170     {
32171       m_performanceConfigurationINTEL = performanceConfigurationINTEL;
32172       return *this;
32173     }
32174 #endif
32175 
operator =(std::nullptr_t)32176     PerformanceConfigurationINTEL & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32177     {
32178       m_performanceConfigurationINTEL = VK_NULL_HANDLE;
32179       return *this;
32180     }
32181 
32182 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32183     auto operator<=>( PerformanceConfigurationINTEL const& ) const = default;
32184 #else
operator ==(PerformanceConfigurationINTEL const & rhs) const32185     bool operator==( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
32186     {
32187       return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL;
32188     }
32189 
operator !=(PerformanceConfigurationINTEL const & rhs) const32190     bool operator!=(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
32191     {
32192       return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL;
32193     }
32194 
operator <(PerformanceConfigurationINTEL const & rhs) const32195     bool operator<(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
32196     {
32197       return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL;
32198     }
32199 #endif
32200 
operator VkPerformanceConfigurationINTEL() const32201     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT
32202     {
32203       return m_performanceConfigurationINTEL;
32204     }
32205 
operator bool() const32206     explicit operator bool() const VULKAN_HPP_NOEXCEPT
32207     {
32208       return m_performanceConfigurationINTEL != VK_NULL_HANDLE;
32209     }
32210 
operator !() const32211     bool operator!() const VULKAN_HPP_NOEXCEPT
32212     {
32213       return m_performanceConfigurationINTEL == VK_NULL_HANDLE;
32214     }
32215 
32216   private:
32217     VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL;
32218   };
32219   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" );
32220 
32221   template <>
32222   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePerformanceConfigurationINTEL>
32223   {
32224     using type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL;
32225   };
32226 
32227   template <>
32228   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL>
32229   {
32230     using Type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL;
32231   };
32232 
32233 
32234 
32235   template <>
32236   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
32237   {
32238     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
32239   };
32240 
32241   class QueryPool
32242   {
32243   public:
32244     using CType = VkQueryPool;
32245 
32246     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool;
32247     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
32248 
32249   public:
QueryPool()32250     VULKAN_HPP_CONSTEXPR QueryPool() VULKAN_HPP_NOEXCEPT
32251       : m_queryPool(VK_NULL_HANDLE)
32252     {}
32253 
QueryPool(std::nullptr_t)32254     VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32255       : m_queryPool(VK_NULL_HANDLE)
32256     {}
32257 
QueryPool(VkQueryPool queryPool)32258     VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT
32259       : m_queryPool( queryPool )
32260     {}
32261 
32262 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueryPool queryPool)32263     QueryPool & operator=(VkQueryPool queryPool) VULKAN_HPP_NOEXCEPT
32264     {
32265       m_queryPool = queryPool;
32266       return *this;
32267     }
32268 #endif
32269 
operator =(std::nullptr_t)32270     QueryPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32271     {
32272       m_queryPool = VK_NULL_HANDLE;
32273       return *this;
32274     }
32275 
32276 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32277     auto operator<=>( QueryPool const& ) const = default;
32278 #else
operator ==(QueryPool const & rhs) const32279     bool operator==( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
32280     {
32281       return m_queryPool == rhs.m_queryPool;
32282     }
32283 
operator !=(QueryPool const & rhs) const32284     bool operator!=(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
32285     {
32286       return m_queryPool != rhs.m_queryPool;
32287     }
32288 
operator <(QueryPool const & rhs) const32289     bool operator<(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT
32290     {
32291       return m_queryPool < rhs.m_queryPool;
32292     }
32293 #endif
32294 
operator VkQueryPool() const32295     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const VULKAN_HPP_NOEXCEPT
32296     {
32297       return m_queryPool;
32298     }
32299 
operator bool() const32300     explicit operator bool() const VULKAN_HPP_NOEXCEPT
32301     {
32302       return m_queryPool != VK_NULL_HANDLE;
32303     }
32304 
operator !() const32305     bool operator!() const VULKAN_HPP_NOEXCEPT
32306     {
32307       return m_queryPool == VK_NULL_HANDLE;
32308     }
32309 
32310   private:
32311     VkQueryPool m_queryPool;
32312   };
32313   static_assert( sizeof( VULKAN_HPP_NAMESPACE::QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" );
32314 
32315   template <>
32316   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueryPool>
32317   {
32318     using type = VULKAN_HPP_NAMESPACE::QueryPool;
32319   };
32320 
32321   template <>
32322   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool>
32323   {
32324     using Type = VULKAN_HPP_NAMESPACE::QueryPool;
32325   };
32326 
32327 
32328   template <>
32329   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool>
32330   {
32331     using Type = VULKAN_HPP_NAMESPACE::QueryPool;
32332   };
32333 
32334 
32335   template <>
32336   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::QueryPool>
32337   {
32338     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
32339   };
32340 
32341   struct RenderPassBeginInfo
32342   {
32343     static const bool allowDuplicate = false;
32344     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo;
32345 
32346 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32347     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo(VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}, uint32_t clearValueCount_ = {}, const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ = {}) VULKAN_HPP_NOEXCEPT
32348     : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( clearValueCount_ ), pClearValues( pClearValues_ )
32349     {}
32350 
32351     VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32352 
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32353     RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32354     {
32355       *this = rhs;
32356     }
32357 
32358 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32359     RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_, VULKAN_HPP_NAMESPACE::Rect2D renderArea_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_ )
32360     : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( static_cast<uint32_t>( clearValues_.size() ) ), pClearValues( clearValues_.data() )
32361     {}
32362 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32363 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32364 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32365     RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32366     {
32367       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const *>( &rhs );
32368       return *this;
32369     }
32370 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32371     RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32372     {
32373       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassBeginInfo ) );
32374       return *this;
32375     }
32376 
setPNextVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32377     RenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32378     {
32379       pNext = pNext_;
32380       return *this;
32381     }
32382 
setRenderPassVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32383     RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
32384     {
32385       renderPass = renderPass_;
32386       return *this;
32387     }
32388 
setFramebufferVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32389     RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
32390     {
32391       framebuffer = framebuffer_;
32392       return *this;
32393     }
32394 
setRenderAreaVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32395     RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
32396     {
32397       renderArea = renderArea_;
32398       return *this;
32399     }
32400 
setClearValueCountVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32401     RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT
32402     {
32403       clearValueCount = clearValueCount_;
32404       return *this;
32405     }
32406 
setPClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32407     RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ ) VULKAN_HPP_NOEXCEPT
32408     {
32409       pClearValues = pClearValues_;
32410       return *this;
32411     }
32412 
32413 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo32414     RenderPassBeginInfo & setClearValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_ ) VULKAN_HPP_NOEXCEPT
32415     {
32416       clearValueCount = static_cast<uint32_t>( clearValues_.size() );
32417       pClearValues = clearValues_.data();
32418       return *this;
32419     }
32420 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
32421 
32422 
operator VkRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32423     operator VkRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
32424     {
32425       return *reinterpret_cast<const VkRenderPassBeginInfo*>( this );
32426     }
32427 
operator VkRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32428     operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
32429     {
32430       return *reinterpret_cast<VkRenderPassBeginInfo*>( this );
32431     }
32432 
32433 
32434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32435     auto operator<=>( RenderPassBeginInfo const& ) const = default;
32436 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32437     bool operator==( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32438     {
32439       return ( sType == rhs.sType )
32440           && ( pNext == rhs.pNext )
32441           && ( renderPass == rhs.renderPass )
32442           && ( framebuffer == rhs.framebuffer )
32443           && ( renderArea == rhs.renderArea )
32444           && ( clearValueCount == rhs.clearValueCount )
32445           && ( pClearValues == rhs.pClearValues );
32446     }
32447 
operator !=VULKAN_HPP_NAMESPACE::RenderPassBeginInfo32448     bool operator!=( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32449     {
32450       return !operator==( rhs );
32451     }
32452 #endif
32453 
32454 
32455 
32456   public:
32457     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo;
32458     const void* pNext = {};
32459     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
32460     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
32461     VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
32462     uint32_t clearValueCount = {};
32463     const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues = {};
32464 
32465   };
32466   static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" );
32467   static_assert( std::is_standard_layout<RenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
32468 
32469   template <>
32470   struct CppType<StructureType, StructureType::eRenderPassBeginInfo>
32471   {
32472     using Type = RenderPassBeginInfo;
32473   };
32474 
32475   struct SubpassBeginInfo
32476   {
32477     static const bool allowDuplicate = false;
32478     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo;
32479 
32480 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo32481     VULKAN_HPP_CONSTEXPR SubpassBeginInfo(VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline) VULKAN_HPP_NOEXCEPT
32482     : contents( contents_ )
32483     {}
32484 
32485     VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32486 
SubpassBeginInfoVULKAN_HPP_NAMESPACE::SubpassBeginInfo32487     SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32488     {
32489       *this = rhs;
32490     }
32491 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32492 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo32493     SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32494     {
32495       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassBeginInfo const *>( &rhs );
32496       return *this;
32497     }
32498 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfo32499     SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32500     {
32501       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassBeginInfo ) );
32502       return *this;
32503     }
32504 
setPNextVULKAN_HPP_NAMESPACE::SubpassBeginInfo32505     SubpassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32506     {
32507       pNext = pNext_;
32508       return *this;
32509     }
32510 
setContentsVULKAN_HPP_NAMESPACE::SubpassBeginInfo32511     SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT
32512     {
32513       contents = contents_;
32514       return *this;
32515     }
32516 
32517 
operator VkSubpassBeginInfo const&VULKAN_HPP_NAMESPACE::SubpassBeginInfo32518     operator VkSubpassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
32519     {
32520       return *reinterpret_cast<const VkSubpassBeginInfo*>( this );
32521     }
32522 
operator VkSubpassBeginInfo&VULKAN_HPP_NAMESPACE::SubpassBeginInfo32523     operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
32524     {
32525       return *reinterpret_cast<VkSubpassBeginInfo*>( this );
32526     }
32527 
32528 
32529 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32530     auto operator<=>( SubpassBeginInfo const& ) const = default;
32531 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassBeginInfo32532     bool operator==( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32533     {
32534       return ( sType == rhs.sType )
32535           && ( pNext == rhs.pNext )
32536           && ( contents == rhs.contents );
32537     }
32538 
operator !=VULKAN_HPP_NAMESPACE::SubpassBeginInfo32539     bool operator!=( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32540     {
32541       return !operator==( rhs );
32542     }
32543 #endif
32544 
32545 
32546 
32547   public:
32548     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo;
32549     const void* pNext = {};
32550     VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline;
32551 
32552   };
32553   static_assert( sizeof( SubpassBeginInfo ) == sizeof( VkSubpassBeginInfo ), "struct and wrapper have different size!" );
32554   static_assert( std::is_standard_layout<SubpassBeginInfo>::value, "struct wrapper is not a standard layout!" );
32555 
32556   template <>
32557   struct CppType<StructureType, StructureType::eSubpassBeginInfo>
32558   {
32559     using Type = SubpassBeginInfo;
32560   };
32561   using SubpassBeginInfoKHR = SubpassBeginInfo;
32562 
32563   struct ImageBlit
32564   {
32565 
32566 
32567 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit32568     VULKAN_HPP_CONSTEXPR_14 ImageBlit(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const& srcOffsets_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const& dstOffsets_ = {}) VULKAN_HPP_NOEXCEPT
32569     : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ )
32570     {}
32571 
32572     VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32573 
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit32574     ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
32575     {
32576       *this = rhs;
32577     }
32578 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32579 
operator =VULKAN_HPP_NAMESPACE::ImageBlit32580     ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
32581     {
32582       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit const *>( &rhs );
32583       return *this;
32584     }
32585 
operator =VULKAN_HPP_NAMESPACE::ImageBlit32586     ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
32587     {
32588       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageBlit ) );
32589       return *this;
32590     }
32591 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit32592     ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
32593     {
32594       srcSubresource = srcSubresource_;
32595       return *this;
32596     }
32597 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit32598     ImageBlit & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
32599     {
32600       srcOffsets = srcOffsets_;
32601       return *this;
32602     }
32603 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit32604     ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
32605     {
32606       dstSubresource = dstSubresource_;
32607       return *this;
32608     }
32609 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit32610     ImageBlit & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D,2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
32611     {
32612       dstOffsets = dstOffsets_;
32613       return *this;
32614     }
32615 
32616 
operator VkImageBlit const&VULKAN_HPP_NAMESPACE::ImageBlit32617     operator VkImageBlit const&() const VULKAN_HPP_NOEXCEPT
32618     {
32619       return *reinterpret_cast<const VkImageBlit*>( this );
32620     }
32621 
operator VkImageBlit&VULKAN_HPP_NAMESPACE::ImageBlit32622     operator VkImageBlit &() VULKAN_HPP_NOEXCEPT
32623     {
32624       return *reinterpret_cast<VkImageBlit*>( this );
32625     }
32626 
32627 
32628 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32629     auto operator<=>( ImageBlit const& ) const = default;
32630 #else
operator ==VULKAN_HPP_NAMESPACE::ImageBlit32631     bool operator==( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
32632     {
32633       return ( srcSubresource == rhs.srcSubresource )
32634           && ( srcOffsets == rhs.srcOffsets )
32635           && ( dstSubresource == rhs.dstSubresource )
32636           && ( dstOffsets == rhs.dstOffsets );
32637     }
32638 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit32639     bool operator!=( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT
32640     {
32641       return !operator==( rhs );
32642     }
32643 #endif
32644 
32645 
32646 
32647   public:
32648     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
32649     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
32650     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
32651     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
32652 
32653   };
32654   static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" );
32655   static_assert( std::is_standard_layout<ImageBlit>::value, "struct wrapper is not a standard layout!" );
32656 
32657   struct ImageSubresourceRange
32658   {
32659 
32660 
32661 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange32662     VULKAN_HPP_CONSTEXPR ImageSubresourceRange(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t baseMipLevel_ = {}, uint32_t levelCount_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT
32663     : aspectMask( aspectMask_ ), baseMipLevel( baseMipLevel_ ), levelCount( levelCount_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ )
32664     {}
32665 
32666     VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32667 
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange32668     ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
32669     {
32670       *this = rhs;
32671     }
32672 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32673 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange32674     ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
32675     {
32676       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceRange const *>( &rhs );
32677       return *this;
32678     }
32679 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange32680     ImageSubresourceRange & operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
32681     {
32682       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSubresourceRange ) );
32683       return *this;
32684     }
32685 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceRange32686     ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
32687     {
32688       aspectMask = aspectMask_;
32689       return *this;
32690     }
32691 
setBaseMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceRange32692     ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT
32693     {
32694       baseMipLevel = baseMipLevel_;
32695       return *this;
32696     }
32697 
setLevelCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange32698     ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT
32699     {
32700       levelCount = levelCount_;
32701       return *this;
32702     }
32703 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceRange32704     ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
32705     {
32706       baseArrayLayer = baseArrayLayer_;
32707       return *this;
32708     }
32709 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange32710     ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
32711     {
32712       layerCount = layerCount_;
32713       return *this;
32714     }
32715 
32716 
operator VkImageSubresourceRange const&VULKAN_HPP_NAMESPACE::ImageSubresourceRange32717     operator VkImageSubresourceRange const&() const VULKAN_HPP_NOEXCEPT
32718     {
32719       return *reinterpret_cast<const VkImageSubresourceRange*>( this );
32720     }
32721 
operator VkImageSubresourceRange&VULKAN_HPP_NAMESPACE::ImageSubresourceRange32722     operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
32723     {
32724       return *reinterpret_cast<VkImageSubresourceRange*>( this );
32725     }
32726 
32727 
32728 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32729     auto operator<=>( ImageSubresourceRange const& ) const = default;
32730 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceRange32731     bool operator==( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
32732     {
32733       return ( aspectMask == rhs.aspectMask )
32734           && ( baseMipLevel == rhs.baseMipLevel )
32735           && ( levelCount == rhs.levelCount )
32736           && ( baseArrayLayer == rhs.baseArrayLayer )
32737           && ( layerCount == rhs.layerCount );
32738     }
32739 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceRange32740     bool operator!=( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT
32741     {
32742       return !operator==( rhs );
32743     }
32744 #endif
32745 
32746 
32747 
32748   public:
32749     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
32750     uint32_t baseMipLevel = {};
32751     uint32_t levelCount = {};
32752     uint32_t baseArrayLayer = {};
32753     uint32_t layerCount = {};
32754 
32755   };
32756   static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" );
32757   static_assert( std::is_standard_layout<ImageSubresourceRange>::value, "struct wrapper is not a standard layout!" );
32758 
32759   struct ImageCopy
32760   {
32761 
32762 
32763 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy32764     VULKAN_HPP_CONSTEXPR ImageCopy(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT
32765     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
32766     {}
32767 
32768     VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32769 
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy32770     ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
32771     {
32772       *this = rhs;
32773     }
32774 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32775 
operator =VULKAN_HPP_NAMESPACE::ImageCopy32776     ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
32777     {
32778       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy const *>( &rhs );
32779       return *this;
32780     }
32781 
operator =VULKAN_HPP_NAMESPACE::ImageCopy32782     ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
32783     {
32784       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageCopy ) );
32785       return *this;
32786     }
32787 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy32788     ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
32789     {
32790       srcSubresource = srcSubresource_;
32791       return *this;
32792     }
32793 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy32794     ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
32795     {
32796       srcOffset = srcOffset_;
32797       return *this;
32798     }
32799 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy32800     ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
32801     {
32802       dstSubresource = dstSubresource_;
32803       return *this;
32804     }
32805 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy32806     ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
32807     {
32808       dstOffset = dstOffset_;
32809       return *this;
32810     }
32811 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy32812     ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
32813     {
32814       extent = extent_;
32815       return *this;
32816     }
32817 
32818 
operator VkImageCopy const&VULKAN_HPP_NAMESPACE::ImageCopy32819     operator VkImageCopy const&() const VULKAN_HPP_NOEXCEPT
32820     {
32821       return *reinterpret_cast<const VkImageCopy*>( this );
32822     }
32823 
operator VkImageCopy&VULKAN_HPP_NAMESPACE::ImageCopy32824     operator VkImageCopy &() VULKAN_HPP_NOEXCEPT
32825     {
32826       return *reinterpret_cast<VkImageCopy*>( this );
32827     }
32828 
32829 
32830 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32831     auto operator<=>( ImageCopy const& ) const = default;
32832 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCopy32833     bool operator==( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
32834     {
32835       return ( srcSubresource == rhs.srcSubresource )
32836           && ( srcOffset == rhs.srcOffset )
32837           && ( dstSubresource == rhs.dstSubresource )
32838           && ( dstOffset == rhs.dstOffset )
32839           && ( extent == rhs.extent );
32840     }
32841 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy32842     bool operator!=( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT
32843     {
32844       return !operator==( rhs );
32845     }
32846 #endif
32847 
32848 
32849 
32850   public:
32851     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
32852     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
32853     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
32854     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
32855     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
32856 
32857   };
32858   static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" );
32859   static_assert( std::is_standard_layout<ImageCopy>::value, "struct wrapper is not a standard layout!" );
32860 
32861   struct SubpassEndInfo
32862   {
32863     static const bool allowDuplicate = false;
32864     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo;
32865 
32866 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo32867     VULKAN_HPP_CONSTEXPR SubpassEndInfo() VULKAN_HPP_NOEXCEPT
32868 
32869     {}
32870 
32871     VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
32872 
SubpassEndInfoVULKAN_HPP_NAMESPACE::SubpassEndInfo32873     SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32874     {
32875       *this = rhs;
32876     }
32877 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
32878 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo32879     SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32880     {
32881       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassEndInfo const *>( &rhs );
32882       return *this;
32883     }
32884 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfo32885     SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
32886     {
32887       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassEndInfo ) );
32888       return *this;
32889     }
32890 
setPNextVULKAN_HPP_NAMESPACE::SubpassEndInfo32891     SubpassEndInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
32892     {
32893       pNext = pNext_;
32894       return *this;
32895     }
32896 
32897 
operator VkSubpassEndInfo const&VULKAN_HPP_NAMESPACE::SubpassEndInfo32898     operator VkSubpassEndInfo const&() const VULKAN_HPP_NOEXCEPT
32899     {
32900       return *reinterpret_cast<const VkSubpassEndInfo*>( this );
32901     }
32902 
operator VkSubpassEndInfo&VULKAN_HPP_NAMESPACE::SubpassEndInfo32903     operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
32904     {
32905       return *reinterpret_cast<VkSubpassEndInfo*>( this );
32906     }
32907 
32908 
32909 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32910     auto operator<=>( SubpassEndInfo const& ) const = default;
32911 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassEndInfo32912     bool operator==( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32913     {
32914       return ( sType == rhs.sType )
32915           && ( pNext == rhs.pNext );
32916     }
32917 
operator !=VULKAN_HPP_NAMESPACE::SubpassEndInfo32918     bool operator!=( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
32919     {
32920       return !operator==( rhs );
32921     }
32922 #endif
32923 
32924 
32925 
32926   public:
32927     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo;
32928     const void* pNext = {};
32929 
32930   };
32931   static_assert( sizeof( SubpassEndInfo ) == sizeof( VkSubpassEndInfo ), "struct and wrapper have different size!" );
32932   static_assert( std::is_standard_layout<SubpassEndInfo>::value, "struct wrapper is not a standard layout!" );
32933 
32934   template <>
32935   struct CppType<StructureType, StructureType::eSubpassEndInfo>
32936   {
32937     using Type = SubpassEndInfo;
32938   };
32939   using SubpassEndInfoKHR = SubpassEndInfo;
32940 
32941   class IndirectCommandsLayoutNV
32942   {
32943   public:
32944     using CType = VkIndirectCommandsLayoutNV;
32945 
32946     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV;
32947     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
32948 
32949   public:
IndirectCommandsLayoutNV()32950     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() VULKAN_HPP_NOEXCEPT
32951       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
32952     {}
32953 
IndirectCommandsLayoutNV(std::nullptr_t)32954     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32955       : m_indirectCommandsLayoutNV(VK_NULL_HANDLE)
32956     {}
32957 
IndirectCommandsLayoutNV(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)32958     VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT
32959       : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV )
32960     {}
32961 
32962 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV)32963     IndirectCommandsLayoutNV & operator=(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV) VULKAN_HPP_NOEXCEPT
32964     {
32965       m_indirectCommandsLayoutNV = indirectCommandsLayoutNV;
32966       return *this;
32967     }
32968 #endif
32969 
operator =(std::nullptr_t)32970     IndirectCommandsLayoutNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
32971     {
32972       m_indirectCommandsLayoutNV = VK_NULL_HANDLE;
32973       return *this;
32974     }
32975 
32976 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
32977     auto operator<=>( IndirectCommandsLayoutNV const& ) const = default;
32978 #else
operator ==(IndirectCommandsLayoutNV const & rhs) const32979     bool operator==( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32980     {
32981       return m_indirectCommandsLayoutNV == rhs.m_indirectCommandsLayoutNV;
32982     }
32983 
operator !=(IndirectCommandsLayoutNV const & rhs) const32984     bool operator!=(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32985     {
32986       return m_indirectCommandsLayoutNV != rhs.m_indirectCommandsLayoutNV;
32987     }
32988 
operator <(IndirectCommandsLayoutNV const & rhs) const32989     bool operator<(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT
32990     {
32991       return m_indirectCommandsLayoutNV < rhs.m_indirectCommandsLayoutNV;
32992     }
32993 #endif
32994 
operator VkIndirectCommandsLayoutNV() const32995     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNV() const VULKAN_HPP_NOEXCEPT
32996     {
32997       return m_indirectCommandsLayoutNV;
32998     }
32999 
operator bool() const33000     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33001     {
33002       return m_indirectCommandsLayoutNV != VK_NULL_HANDLE;
33003     }
33004 
operator !() const33005     bool operator!() const VULKAN_HPP_NOEXCEPT
33006     {
33007       return m_indirectCommandsLayoutNV == VK_NULL_HANDLE;
33008     }
33009 
33010   private:
33011     VkIndirectCommandsLayoutNV m_indirectCommandsLayoutNV;
33012   };
33013   static_assert( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV ) == sizeof( VkIndirectCommandsLayoutNV ), "handle and wrapper have different size!" );
33014 
33015   template <>
33016   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eIndirectCommandsLayoutNV>
33017   {
33018     using type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV;
33019   };
33020 
33021   template <>
33022   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV>
33023   {
33024     using Type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV;
33025   };
33026 
33027 
33028 
33029   template <>
33030   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
33031   {
33032     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
33033   };
33034 
33035   struct IndirectCommandsStreamNV
33036   {
33037 
33038 
33039 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33040     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT
33041     : buffer( buffer_ ), offset( offset_ )
33042     {}
33043 
33044     VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33045 
IndirectCommandsStreamNVVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33046     IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
33047     {
33048       *this = rhs;
33049     }
33050 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33051 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33052     IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
33053     {
33054       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const *>( &rhs );
33055       return *this;
33056     }
33057 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33058     IndirectCommandsStreamNV & operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
33059     {
33060       memcpy( static_cast<void *>( this ), &rhs, sizeof( IndirectCommandsStreamNV ) );
33061       return *this;
33062     }
33063 
setBufferVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33064     IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
33065     {
33066       buffer = buffer_;
33067       return *this;
33068     }
33069 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33070     IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
33071     {
33072       offset = offset_;
33073       return *this;
33074     }
33075 
33076 
operator VkIndirectCommandsStreamNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33077     operator VkIndirectCommandsStreamNV const&() const VULKAN_HPP_NOEXCEPT
33078     {
33079       return *reinterpret_cast<const VkIndirectCommandsStreamNV*>( this );
33080     }
33081 
operator VkIndirectCommandsStreamNV&VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33082     operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT
33083     {
33084       return *reinterpret_cast<VkIndirectCommandsStreamNV*>( this );
33085     }
33086 
33087 
33088 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33089     auto operator<=>( IndirectCommandsStreamNV const& ) const = default;
33090 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33091     bool operator==( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33092     {
33093       return ( buffer == rhs.buffer )
33094           && ( offset == rhs.offset );
33095     }
33096 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV33097     bool operator!=( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33098     {
33099       return !operator==( rhs );
33100     }
33101 #endif
33102 
33103 
33104 
33105   public:
33106     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
33107     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
33108 
33109   };
33110   static_assert( sizeof( IndirectCommandsStreamNV ) == sizeof( VkIndirectCommandsStreamNV ), "struct and wrapper have different size!" );
33111   static_assert( std::is_standard_layout<IndirectCommandsStreamNV>::value, "struct wrapper is not a standard layout!" );
33112 
33113   struct GeneratedCommandsInfoNV
33114   {
33115     static const bool allowDuplicate = false;
33116     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV;
33117 
33118 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33119     VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, uint32_t streamCount_ = {}, const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ = {}, uint32_t sequencesCount_ = {}, VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {}) VULKAN_HPP_NOEXCEPT
33120     : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), streamCount( streamCount_ ), pStreams( pStreams_ ), sequencesCount( sequencesCount_ ), preprocessBuffer( preprocessBuffer_ ), preprocessOffset( preprocessOffset_ ), preprocessSize( preprocessSize_ ), sequencesCountBuffer( sequencesCountBuffer_ ), sequencesCountOffset( sequencesCountOffset_ ), sequencesIndexBuffer( sequencesIndexBuffer_ ), sequencesIndexOffset( sequencesIndexOffset_ )
33121     {}
33122 
33123     VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33124 
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33125     GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
33126     {
33127       *this = rhs;
33128     }
33129 
33130 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GeneratedCommandsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33131     GeneratedCommandsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::Pipeline pipeline_, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_, uint32_t sequencesCount_ = {}, VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {} )
33132     : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), streamCount( static_cast<uint32_t>( streams_.size() ) ), pStreams( streams_.data() ), sequencesCount( sequencesCount_ ), preprocessBuffer( preprocessBuffer_ ), preprocessOffset( preprocessOffset_ ), preprocessSize( preprocessSize_ ), sequencesCountBuffer( sequencesCountBuffer_ ), sequencesCountOffset( sequencesCountOffset_ ), sequencesIndexBuffer( sequencesIndexBuffer_ ), sequencesIndexOffset( sequencesIndexOffset_ )
33133     {}
33134 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33135 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33136 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33137     GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
33138     {
33139       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const *>( &rhs );
33140       return *this;
33141     }
33142 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33143     GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
33144     {
33145       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeneratedCommandsInfoNV ) );
33146       return *this;
33147     }
33148 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33149     GeneratedCommandsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33150     {
33151       pNext = pNext_;
33152       return *this;
33153     }
33154 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33155     GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
33156     {
33157       pipelineBindPoint = pipelineBindPoint_;
33158       return *this;
33159     }
33160 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33161     GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
33162     {
33163       pipeline = pipeline_;
33164       return *this;
33165     }
33166 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33167     GeneratedCommandsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
33168     {
33169       indirectCommandsLayout = indirectCommandsLayout_;
33170       return *this;
33171     }
33172 
setStreamCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33173     GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
33174     {
33175       streamCount = streamCount_;
33176       return *this;
33177     }
33178 
setPStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33179     GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ ) VULKAN_HPP_NOEXCEPT
33180     {
33181       pStreams = pStreams_;
33182       return *this;
33183     }
33184 
33185 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStreamsVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33186     GeneratedCommandsInfoNV & setStreams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_ ) VULKAN_HPP_NOEXCEPT
33187     {
33188       streamCount = static_cast<uint32_t>( streams_.size() );
33189       pStreams = streams_.data();
33190       return *this;
33191     }
33192 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33193 
setSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33194     GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT
33195     {
33196       sequencesCount = sequencesCount_;
33197       return *this;
33198     }
33199 
setPreprocessBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33200     GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT
33201     {
33202       preprocessBuffer = preprocessBuffer_;
33203       return *this;
33204     }
33205 
setPreprocessOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33206     GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT
33207     {
33208       preprocessOffset = preprocessOffset_;
33209       return *this;
33210     }
33211 
setPreprocessSizeVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33212     GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT
33213     {
33214       preprocessSize = preprocessSize_;
33215       return *this;
33216     }
33217 
setSequencesCountBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33218     GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT
33219     {
33220       sequencesCountBuffer = sequencesCountBuffer_;
33221       return *this;
33222     }
33223 
setSequencesCountOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33224     GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT
33225     {
33226       sequencesCountOffset = sequencesCountOffset_;
33227       return *this;
33228     }
33229 
setSequencesIndexBufferVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33230     GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT
33231     {
33232       sequencesIndexBuffer = sequencesIndexBuffer_;
33233       return *this;
33234     }
33235 
setSequencesIndexOffsetVULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33236     GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT
33237     {
33238       sequencesIndexOffset = sequencesIndexOffset_;
33239       return *this;
33240     }
33241 
33242 
operator VkGeneratedCommandsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33243     operator VkGeneratedCommandsInfoNV const&() const VULKAN_HPP_NOEXCEPT
33244     {
33245       return *reinterpret_cast<const VkGeneratedCommandsInfoNV*>( this );
33246     }
33247 
operator VkGeneratedCommandsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33248     operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT
33249     {
33250       return *reinterpret_cast<VkGeneratedCommandsInfoNV*>( this );
33251     }
33252 
33253 
33254 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33255     auto operator<=>( GeneratedCommandsInfoNV const& ) const = default;
33256 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33257     bool operator==( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33258     {
33259       return ( sType == rhs.sType )
33260           && ( pNext == rhs.pNext )
33261           && ( pipelineBindPoint == rhs.pipelineBindPoint )
33262           && ( pipeline == rhs.pipeline )
33263           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
33264           && ( streamCount == rhs.streamCount )
33265           && ( pStreams == rhs.pStreams )
33266           && ( sequencesCount == rhs.sequencesCount )
33267           && ( preprocessBuffer == rhs.preprocessBuffer )
33268           && ( preprocessOffset == rhs.preprocessOffset )
33269           && ( preprocessSize == rhs.preprocessSize )
33270           && ( sequencesCountBuffer == rhs.sequencesCountBuffer )
33271           && ( sequencesCountOffset == rhs.sequencesCountOffset )
33272           && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer )
33273           && ( sequencesIndexOffset == rhs.sequencesIndexOffset );
33274     }
33275 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV33276     bool operator!=( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
33277     {
33278       return !operator==( rhs );
33279     }
33280 #endif
33281 
33282 
33283 
33284   public:
33285     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV;
33286     const void* pNext = {};
33287     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
33288     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
33289     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
33290     uint32_t streamCount = {};
33291     const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams = {};
33292     uint32_t sequencesCount = {};
33293     VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {};
33294     VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {};
33295     VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {};
33296     VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {};
33297     VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {};
33298     VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {};
33299     VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {};
33300 
33301   };
33302   static_assert( sizeof( GeneratedCommandsInfoNV ) == sizeof( VkGeneratedCommandsInfoNV ), "struct and wrapper have different size!" );
33303   static_assert( std::is_standard_layout<GeneratedCommandsInfoNV>::value, "struct wrapper is not a standard layout!" );
33304 
33305   template <>
33306   struct CppType<StructureType, StructureType::eGeneratedCommandsInfoNV>
33307   {
33308     using Type = GeneratedCommandsInfoNV;
33309   };
33310 
33311   struct MemoryBarrier
33312   {
33313     static const bool allowDuplicate = false;
33314     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier;
33315 
33316 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier33317     VULKAN_HPP_CONSTEXPR MemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}) VULKAN_HPP_NOEXCEPT
33318     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ )
33319     {}
33320 
33321     VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33322 
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier33323     MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33324     {
33325       *this = rhs;
33326     }
33327 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33328 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier33329     MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33330     {
33331       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier const *>( &rhs );
33332       return *this;
33333     }
33334 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier33335     MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33336     {
33337       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryBarrier ) );
33338       return *this;
33339     }
33340 
setPNextVULKAN_HPP_NAMESPACE::MemoryBarrier33341     MemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33342     {
33343       pNext = pNext_;
33344       return *this;
33345     }
33346 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier33347     MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
33348     {
33349       srcAccessMask = srcAccessMask_;
33350       return *this;
33351     }
33352 
setDstAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier33353     MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
33354     {
33355       dstAccessMask = dstAccessMask_;
33356       return *this;
33357     }
33358 
33359 
operator VkMemoryBarrier const&VULKAN_HPP_NAMESPACE::MemoryBarrier33360     operator VkMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
33361     {
33362       return *reinterpret_cast<const VkMemoryBarrier*>( this );
33363     }
33364 
operator VkMemoryBarrier&VULKAN_HPP_NAMESPACE::MemoryBarrier33365     operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
33366     {
33367       return *reinterpret_cast<VkMemoryBarrier*>( this );
33368     }
33369 
33370 
33371 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33372     auto operator<=>( MemoryBarrier const& ) const = default;
33373 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryBarrier33374     bool operator==( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33375     {
33376       return ( sType == rhs.sType )
33377           && ( pNext == rhs.pNext )
33378           && ( srcAccessMask == rhs.srcAccessMask )
33379           && ( dstAccessMask == rhs.dstAccessMask );
33380     }
33381 
operator !=VULKAN_HPP_NAMESPACE::MemoryBarrier33382     bool operator!=( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33383     {
33384       return !operator==( rhs );
33385     }
33386 #endif
33387 
33388 
33389 
33390   public:
33391     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier;
33392     const void* pNext = {};
33393     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
33394     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
33395 
33396   };
33397   static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" );
33398   static_assert( std::is_standard_layout<MemoryBarrier>::value, "struct wrapper is not a standard layout!" );
33399 
33400   template <>
33401   struct CppType<StructureType, StructureType::eMemoryBarrier>
33402   {
33403     using Type = MemoryBarrier;
33404   };
33405 
33406   struct ImageMemoryBarrier
33407   {
33408     static const bool allowDuplicate = false;
33409     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier;
33410 
33411 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33412     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}) VULKAN_HPP_NOEXCEPT
33413     : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ )
33414     {}
33415 
33416     VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33417 
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33418     ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33419     {
33420       *this = rhs;
33421     }
33422 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33423 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33424     ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33425     {
33426       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const *>( &rhs );
33427       return *this;
33428     }
33429 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33430     ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
33431     {
33432       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageMemoryBarrier ) );
33433       return *this;
33434     }
33435 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33436     ImageMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33437     {
33438       pNext = pNext_;
33439       return *this;
33440     }
33441 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33442     ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
33443     {
33444       srcAccessMask = srcAccessMask_;
33445       return *this;
33446     }
33447 
setDstAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33448     ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
33449     {
33450       dstAccessMask = dstAccessMask_;
33451       return *this;
33452     }
33453 
setOldLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33454     ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
33455     {
33456       oldLayout = oldLayout_;
33457       return *this;
33458     }
33459 
setNewLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33460     ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
33461     {
33462       newLayout = newLayout_;
33463       return *this;
33464     }
33465 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33466     ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
33467     {
33468       srcQueueFamilyIndex = srcQueueFamilyIndex_;
33469       return *this;
33470     }
33471 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33472     ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
33473     {
33474       dstQueueFamilyIndex = dstQueueFamilyIndex_;
33475       return *this;
33476     }
33477 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33478     ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
33479     {
33480       image = image_;
33481       return *this;
33482     }
33483 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageMemoryBarrier33484     ImageMemoryBarrier & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
33485     {
33486       subresourceRange = subresourceRange_;
33487       return *this;
33488     }
33489 
33490 
operator VkImageMemoryBarrier const&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33491     operator VkImageMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT
33492     {
33493       return *reinterpret_cast<const VkImageMemoryBarrier*>( this );
33494     }
33495 
operator VkImageMemoryBarrier&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33496     operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
33497     {
33498       return *reinterpret_cast<VkImageMemoryBarrier*>( this );
33499     }
33500 
33501 
33502 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33503     auto operator<=>( ImageMemoryBarrier const& ) const = default;
33504 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33505     bool operator==( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33506     {
33507       return ( sType == rhs.sType )
33508           && ( pNext == rhs.pNext )
33509           && ( srcAccessMask == rhs.srcAccessMask )
33510           && ( dstAccessMask == rhs.dstAccessMask )
33511           && ( oldLayout == rhs.oldLayout )
33512           && ( newLayout == rhs.newLayout )
33513           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
33514           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
33515           && ( image == rhs.image )
33516           && ( subresourceRange == rhs.subresourceRange );
33517     }
33518 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryBarrier33519     bool operator!=( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT
33520     {
33521       return !operator==( rhs );
33522     }
33523 #endif
33524 
33525 
33526 
33527   public:
33528     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier;
33529     const void* pNext = {};
33530     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
33531     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
33532     VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
33533     VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
33534     uint32_t srcQueueFamilyIndex = {};
33535     uint32_t dstQueueFamilyIndex = {};
33536     VULKAN_HPP_NAMESPACE::Image image = {};
33537     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
33538 
33539   };
33540   static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" );
33541   static_assert( std::is_standard_layout<ImageMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
33542 
33543   template <>
33544   struct CppType<StructureType, StructureType::eImageMemoryBarrier>
33545   {
33546     using Type = ImageMemoryBarrier;
33547   };
33548 
33549   class BufferView
33550   {
33551   public:
33552     using CType = VkBufferView;
33553 
33554     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView;
33555     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
33556 
33557   public:
BufferView()33558     VULKAN_HPP_CONSTEXPR BufferView() VULKAN_HPP_NOEXCEPT
33559       : m_bufferView(VK_NULL_HANDLE)
33560     {}
33561 
BufferView(std::nullptr_t)33562     VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33563       : m_bufferView(VK_NULL_HANDLE)
33564     {}
33565 
BufferView(VkBufferView bufferView)33566     VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT
33567       : m_bufferView( bufferView )
33568     {}
33569 
33570 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBufferView bufferView)33571     BufferView & operator=(VkBufferView bufferView) VULKAN_HPP_NOEXCEPT
33572     {
33573       m_bufferView = bufferView;
33574       return *this;
33575     }
33576 #endif
33577 
operator =(std::nullptr_t)33578     BufferView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33579     {
33580       m_bufferView = VK_NULL_HANDLE;
33581       return *this;
33582     }
33583 
33584 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33585     auto operator<=>( BufferView const& ) const = default;
33586 #else
operator ==(BufferView const & rhs) const33587     bool operator==( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
33588     {
33589       return m_bufferView == rhs.m_bufferView;
33590     }
33591 
operator !=(BufferView const & rhs) const33592     bool operator!=(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
33593     {
33594       return m_bufferView != rhs.m_bufferView;
33595     }
33596 
operator <(BufferView const & rhs) const33597     bool operator<(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT
33598     {
33599       return m_bufferView < rhs.m_bufferView;
33600     }
33601 #endif
33602 
operator VkBufferView() const33603     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const VULKAN_HPP_NOEXCEPT
33604     {
33605       return m_bufferView;
33606     }
33607 
operator bool() const33608     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33609     {
33610       return m_bufferView != VK_NULL_HANDLE;
33611     }
33612 
operator !() const33613     bool operator!() const VULKAN_HPP_NOEXCEPT
33614     {
33615       return m_bufferView == VK_NULL_HANDLE;
33616     }
33617 
33618   private:
33619     VkBufferView m_bufferView;
33620   };
33621   static_assert( sizeof( VULKAN_HPP_NAMESPACE::BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" );
33622 
33623   template <>
33624   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eBufferView>
33625   {
33626     using type = VULKAN_HPP_NAMESPACE::BufferView;
33627   };
33628 
33629   template <>
33630   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eBufferView>
33631   {
33632     using Type = VULKAN_HPP_NAMESPACE::BufferView;
33633   };
33634 
33635 
33636   template <>
33637   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView>
33638   {
33639     using Type = VULKAN_HPP_NAMESPACE::BufferView;
33640   };
33641 
33642 
33643   template <>
33644   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::BufferView>
33645   {
33646     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
33647   };
33648 
33649   struct WriteDescriptorSet
33650   {
33651     static const bool allowDuplicate = false;
33652     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet;
33653 
33654 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33655     VULKAN_HPP_CONSTEXPR WriteDescriptorSet(VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ = {}, const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ = {}) VULKAN_HPP_NOEXCEPT
33656     : dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), pImageInfo( pImageInfo_ ), pBufferInfo( pBufferInfo_ ), pTexelBufferView( pTexelBufferView_ )
33657     {}
33658 
33659     VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
33660 
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33661     WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
33662     {
33663       *this = rhs;
33664     }
33665 
33666 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33667     WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_, uint32_t dstBinding_, uint32_t dstArrayElement_, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ = {} )
33668     : dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( static_cast<uint32_t>( !imageInfo_.empty() ? imageInfo_.size() : !bufferInfo_.empty() ? bufferInfo_.size() : texelBufferView_.size() ) ), descriptorType( descriptorType_ ), pImageInfo( imageInfo_.data() ), pBufferInfo( bufferInfo_.data() ), pTexelBufferView( texelBufferView_.data() )
33669     {
33670 #ifdef VULKAN_HPP_NO_EXCEPTIONS
33671       VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) == 1 );
33672 #else
33673       if ( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1 )
33674       {
33675         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::WriteDescriptorSet::WriteDescriptorSet: ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1" );
33676       }
33677 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
33678     }
33679 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33680 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
33681 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet33682     WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
33683     {
33684       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>( &rhs );
33685       return *this;
33686     }
33687 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet33688     WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
33689     {
33690       memcpy( static_cast<void *>( this ), &rhs, sizeof( WriteDescriptorSet ) );
33691       return *this;
33692     }
33693 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSet33694     WriteDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
33695     {
33696       pNext = pNext_;
33697       return *this;
33698     }
33699 
setDstSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet33700     WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
33701     {
33702       dstSet = dstSet_;
33703       return *this;
33704     }
33705 
setDstBindingVULKAN_HPP_NAMESPACE::WriteDescriptorSet33706     WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
33707     {
33708       dstBinding = dstBinding_;
33709       return *this;
33710     }
33711 
setDstArrayElementVULKAN_HPP_NAMESPACE::WriteDescriptorSet33712     WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
33713     {
33714       dstArrayElement = dstArrayElement_;
33715       return *this;
33716     }
33717 
setDescriptorCountVULKAN_HPP_NAMESPACE::WriteDescriptorSet33718     WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
33719     {
33720       descriptorCount = descriptorCount_;
33721       return *this;
33722     }
33723 
setDescriptorTypeVULKAN_HPP_NAMESPACE::WriteDescriptorSet33724     WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
33725     {
33726       descriptorType = descriptorType_;
33727       return *this;
33728     }
33729 
setPImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33730     WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ ) VULKAN_HPP_NOEXCEPT
33731     {
33732       pImageInfo = pImageInfo_;
33733       return *this;
33734     }
33735 
33736 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33737     WriteDescriptorSet & setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_ ) VULKAN_HPP_NOEXCEPT
33738     {
33739       descriptorCount = static_cast<uint32_t>( imageInfo_.size() );
33740       pImageInfo = imageInfo_.data();
33741       return *this;
33742     }
33743 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33744 
setPBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33745     WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
33746     {
33747       pBufferInfo = pBufferInfo_;
33748       return *this;
33749     }
33750 
33751 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet33752     WriteDescriptorSet & setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT
33753     {
33754       descriptorCount = static_cast<uint32_t>( bufferInfo_.size() );
33755       pBufferInfo = bufferInfo_.data();
33756       return *this;
33757     }
33758 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33759 
setPTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet33760     WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
33761     {
33762       pTexelBufferView = pTexelBufferView_;
33763       return *this;
33764     }
33765 
33766 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet33767     WriteDescriptorSet & setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT
33768     {
33769       descriptorCount = static_cast<uint32_t>( texelBufferView_.size() );
33770       pTexelBufferView = texelBufferView_.data();
33771       return *this;
33772     }
33773 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
33774 
33775 
operator VkWriteDescriptorSet const&VULKAN_HPP_NAMESPACE::WriteDescriptorSet33776     operator VkWriteDescriptorSet const&() const VULKAN_HPP_NOEXCEPT
33777     {
33778       return *reinterpret_cast<const VkWriteDescriptorSet*>( this );
33779     }
33780 
operator VkWriteDescriptorSet&VULKAN_HPP_NAMESPACE::WriteDescriptorSet33781     operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
33782     {
33783       return *reinterpret_cast<VkWriteDescriptorSet*>( this );
33784     }
33785 
33786 
33787 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33788     auto operator<=>( WriteDescriptorSet const& ) const = default;
33789 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSet33790     bool operator==( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
33791     {
33792       return ( sType == rhs.sType )
33793           && ( pNext == rhs.pNext )
33794           && ( dstSet == rhs.dstSet )
33795           && ( dstBinding == rhs.dstBinding )
33796           && ( dstArrayElement == rhs.dstArrayElement )
33797           && ( descriptorCount == rhs.descriptorCount )
33798           && ( descriptorType == rhs.descriptorType )
33799           && ( pImageInfo == rhs.pImageInfo )
33800           && ( pBufferInfo == rhs.pBufferInfo )
33801           && ( pTexelBufferView == rhs.pTexelBufferView );
33802     }
33803 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSet33804     bool operator!=( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT
33805     {
33806       return !operator==( rhs );
33807     }
33808 #endif
33809 
33810 
33811 
33812   public:
33813     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet;
33814     const void* pNext = {};
33815     VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
33816     uint32_t dstBinding = {};
33817     uint32_t dstArrayElement = {};
33818     uint32_t descriptorCount = {};
33819     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
33820     const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo = {};
33821     const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo = {};
33822     const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView = {};
33823 
33824   };
33825   static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" );
33826   static_assert( std::is_standard_layout<WriteDescriptorSet>::value, "struct wrapper is not a standard layout!" );
33827 
33828   template <>
33829   struct CppType<StructureType, StructureType::eWriteDescriptorSet>
33830   {
33831     using Type = WriteDescriptorSet;
33832   };
33833 
33834   class DescriptorUpdateTemplate
33835   {
33836   public:
33837     using CType = VkDescriptorUpdateTemplate;
33838 
33839     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate;
33840     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
33841 
33842   public:
DescriptorUpdateTemplate()33843     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() VULKAN_HPP_NOEXCEPT
33844       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
33845     {}
33846 
DescriptorUpdateTemplate(std::nullptr_t)33847     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33848       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
33849     {}
33850 
DescriptorUpdateTemplate(VkDescriptorUpdateTemplate descriptorUpdateTemplate)33851     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT
33852       : m_descriptorUpdateTemplate( descriptorUpdateTemplate )
33853     {}
33854 
33855 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorUpdateTemplate descriptorUpdateTemplate)33856     DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate) VULKAN_HPP_NOEXCEPT
33857     {
33858       m_descriptorUpdateTemplate = descriptorUpdateTemplate;
33859       return *this;
33860     }
33861 #endif
33862 
operator =(std::nullptr_t)33863     DescriptorUpdateTemplate & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33864     {
33865       m_descriptorUpdateTemplate = VK_NULL_HANDLE;
33866       return *this;
33867     }
33868 
33869 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33870     auto operator<=>( DescriptorUpdateTemplate const& ) const = default;
33871 #else
operator ==(DescriptorUpdateTemplate const & rhs) const33872     bool operator==( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
33873     {
33874       return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate;
33875     }
33876 
operator !=(DescriptorUpdateTemplate const & rhs) const33877     bool operator!=(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
33878     {
33879       return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate;
33880     }
33881 
operator <(DescriptorUpdateTemplate const & rhs) const33882     bool operator<(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT
33883     {
33884       return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate;
33885     }
33886 #endif
33887 
operator VkDescriptorUpdateTemplate() const33888     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT
33889     {
33890       return m_descriptorUpdateTemplate;
33891     }
33892 
operator bool() const33893     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33894     {
33895       return m_descriptorUpdateTemplate != VK_NULL_HANDLE;
33896     }
33897 
operator !() const33898     bool operator!() const VULKAN_HPP_NOEXCEPT
33899     {
33900       return m_descriptorUpdateTemplate == VK_NULL_HANDLE;
33901     }
33902 
33903   private:
33904     VkDescriptorUpdateTemplate m_descriptorUpdateTemplate;
33905   };
33906   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" );
33907 
33908   template <>
33909   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDescriptorUpdateTemplate>
33910   {
33911     using type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
33912   };
33913 
33914   template <>
33915   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate>
33916   {
33917     using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
33918   };
33919 
33920 
33921   template <>
33922   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate>
33923   {
33924     using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate;
33925   };
33926 
33927 
33928   template <>
33929   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
33930   {
33931     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
33932   };
33933   using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
33934 
33935   class Event
33936   {
33937   public:
33938     using CType = VkEvent;
33939 
33940     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent;
33941     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
33942 
33943   public:
Event()33944     VULKAN_HPP_CONSTEXPR Event() VULKAN_HPP_NOEXCEPT
33945       : m_event(VK_NULL_HANDLE)
33946     {}
33947 
Event(std::nullptr_t)33948     VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33949       : m_event(VK_NULL_HANDLE)
33950     {}
33951 
Event(VkEvent event)33952     VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT
33953       : m_event( event )
33954     {}
33955 
33956 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkEvent event)33957     Event & operator=(VkEvent event) VULKAN_HPP_NOEXCEPT
33958     {
33959       m_event = event;
33960       return *this;
33961     }
33962 #endif
33963 
operator =(std::nullptr_t)33964     Event & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
33965     {
33966       m_event = VK_NULL_HANDLE;
33967       return *this;
33968     }
33969 
33970 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
33971     auto operator<=>( Event const& ) const = default;
33972 #else
operator ==(Event const & rhs) const33973     bool operator==( Event const & rhs ) const VULKAN_HPP_NOEXCEPT
33974     {
33975       return m_event == rhs.m_event;
33976     }
33977 
operator !=(Event const & rhs) const33978     bool operator!=(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
33979     {
33980       return m_event != rhs.m_event;
33981     }
33982 
operator <(Event const & rhs) const33983     bool operator<(Event const & rhs ) const VULKAN_HPP_NOEXCEPT
33984     {
33985       return m_event < rhs.m_event;
33986     }
33987 #endif
33988 
operator VkEvent() const33989     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const VULKAN_HPP_NOEXCEPT
33990     {
33991       return m_event;
33992     }
33993 
operator bool() const33994     explicit operator bool() const VULKAN_HPP_NOEXCEPT
33995     {
33996       return m_event != VK_NULL_HANDLE;
33997     }
33998 
operator !() const33999     bool operator!() const VULKAN_HPP_NOEXCEPT
34000     {
34001       return m_event == VK_NULL_HANDLE;
34002     }
34003 
34004   private:
34005     VkEvent m_event;
34006   };
34007   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" );
34008 
34009   template <>
34010   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eEvent>
34011   {
34012     using type = VULKAN_HPP_NAMESPACE::Event;
34013   };
34014 
34015   template <>
34016   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eEvent>
34017   {
34018     using Type = VULKAN_HPP_NAMESPACE::Event;
34019   };
34020 
34021 
34022   template <>
34023   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent>
34024   {
34025     using Type = VULKAN_HPP_NAMESPACE::Event;
34026   };
34027 
34028 
34029   template <>
34030   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Event>
34031   {
34032     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
34033   };
34034 
34035   struct ImageResolve
34036   {
34037 
34038 
34039 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve34040     VULKAN_HPP_CONSTEXPR ImageResolve(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT
34041     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
34042     {}
34043 
34044     VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34045 
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve34046     ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
34047     {
34048       *this = rhs;
34049     }
34050 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34051 
operator =VULKAN_HPP_NAMESPACE::ImageResolve34052     ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
34053     {
34054       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve const *>( &rhs );
34055       return *this;
34056     }
34057 
operator =VULKAN_HPP_NAMESPACE::ImageResolve34058     ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
34059     {
34060       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageResolve ) );
34061       return *this;
34062     }
34063 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve34064     ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
34065     {
34066       srcSubresource = srcSubresource_;
34067       return *this;
34068     }
34069 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve34070     ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
34071     {
34072       srcOffset = srcOffset_;
34073       return *this;
34074     }
34075 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve34076     ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
34077     {
34078       dstSubresource = dstSubresource_;
34079       return *this;
34080     }
34081 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve34082     ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
34083     {
34084       dstOffset = dstOffset_;
34085       return *this;
34086     }
34087 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve34088     ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
34089     {
34090       extent = extent_;
34091       return *this;
34092     }
34093 
34094 
operator VkImageResolve const&VULKAN_HPP_NAMESPACE::ImageResolve34095     operator VkImageResolve const&() const VULKAN_HPP_NOEXCEPT
34096     {
34097       return *reinterpret_cast<const VkImageResolve*>( this );
34098     }
34099 
operator VkImageResolve&VULKAN_HPP_NAMESPACE::ImageResolve34100     operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
34101     {
34102       return *reinterpret_cast<VkImageResolve*>( this );
34103     }
34104 
34105 
34106 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34107     auto operator<=>( ImageResolve const& ) const = default;
34108 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve34109     bool operator==( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
34110     {
34111       return ( srcSubresource == rhs.srcSubresource )
34112           && ( srcOffset == rhs.srcOffset )
34113           && ( dstSubresource == rhs.dstSubresource )
34114           && ( dstOffset == rhs.dstOffset )
34115           && ( extent == rhs.extent );
34116     }
34117 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve34118     bool operator!=( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
34119     {
34120       return !operator==( rhs );
34121     }
34122 #endif
34123 
34124 
34125 
34126   public:
34127     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
34128     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
34129     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
34130     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
34131     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
34132 
34133   };
34134   static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" );
34135   static_assert( std::is_standard_layout<ImageResolve>::value, "struct wrapper is not a standard layout!" );
34136 
34137   struct ImageResolve2KHR
34138   {
34139     static const bool allowDuplicate = false;
34140     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2KHR;
34141 
34142 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageResolve2KHRVULKAN_HPP_NAMESPACE::ImageResolve2KHR34143     VULKAN_HPP_CONSTEXPR ImageResolve2KHR(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT
34144     : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ )
34145     {}
34146 
34147     VULKAN_HPP_CONSTEXPR ImageResolve2KHR( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34148 
ImageResolve2KHRVULKAN_HPP_NAMESPACE::ImageResolve2KHR34149     ImageResolve2KHR( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34150     {
34151       *this = rhs;
34152     }
34153 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34154 
operator =VULKAN_HPP_NAMESPACE::ImageResolve2KHR34155     ImageResolve2KHR & operator=( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34156     {
34157       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve2KHR const *>( &rhs );
34158       return *this;
34159     }
34160 
operator =VULKAN_HPP_NAMESPACE::ImageResolve2KHR34161     ImageResolve2KHR & operator=( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34162     {
34163       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageResolve2KHR ) );
34164       return *this;
34165     }
34166 
setPNextVULKAN_HPP_NAMESPACE::ImageResolve2KHR34167     ImageResolve2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34168     {
34169       pNext = pNext_;
34170       return *this;
34171     }
34172 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve2KHR34173     ImageResolve2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
34174     {
34175       srcSubresource = srcSubresource_;
34176       return *this;
34177     }
34178 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve2KHR34179     ImageResolve2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
34180     {
34181       srcOffset = srcOffset_;
34182       return *this;
34183     }
34184 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve2KHR34185     ImageResolve2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
34186     {
34187       dstSubresource = dstSubresource_;
34188       return *this;
34189     }
34190 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve2KHR34191     ImageResolve2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
34192     {
34193       dstOffset = dstOffset_;
34194       return *this;
34195     }
34196 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve2KHR34197     ImageResolve2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
34198     {
34199       extent = extent_;
34200       return *this;
34201     }
34202 
34203 
operator VkImageResolve2KHR const&VULKAN_HPP_NAMESPACE::ImageResolve2KHR34204     operator VkImageResolve2KHR const&() const VULKAN_HPP_NOEXCEPT
34205     {
34206       return *reinterpret_cast<const VkImageResolve2KHR*>( this );
34207     }
34208 
operator VkImageResolve2KHR&VULKAN_HPP_NAMESPACE::ImageResolve2KHR34209     operator VkImageResolve2KHR &() VULKAN_HPP_NOEXCEPT
34210     {
34211       return *reinterpret_cast<VkImageResolve2KHR*>( this );
34212     }
34213 
34214 
34215 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34216     auto operator<=>( ImageResolve2KHR const& ) const = default;
34217 #else
operator ==VULKAN_HPP_NAMESPACE::ImageResolve2KHR34218     bool operator==( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34219     {
34220       return ( sType == rhs.sType )
34221           && ( pNext == rhs.pNext )
34222           && ( srcSubresource == rhs.srcSubresource )
34223           && ( srcOffset == rhs.srcOffset )
34224           && ( dstSubresource == rhs.dstSubresource )
34225           && ( dstOffset == rhs.dstOffset )
34226           && ( extent == rhs.extent );
34227     }
34228 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve2KHR34229     bool operator!=( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34230     {
34231       return !operator==( rhs );
34232     }
34233 #endif
34234 
34235 
34236 
34237   public:
34238     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2KHR;
34239     const void* pNext = {};
34240     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
34241     VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
34242     VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
34243     VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
34244     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
34245 
34246   };
34247   static_assert( sizeof( ImageResolve2KHR ) == sizeof( VkImageResolve2KHR ), "struct and wrapper have different size!" );
34248   static_assert( std::is_standard_layout<ImageResolve2KHR>::value, "struct wrapper is not a standard layout!" );
34249 
34250   template <>
34251   struct CppType<StructureType, StructureType::eImageResolve2KHR>
34252   {
34253     using Type = ImageResolve2KHR;
34254   };
34255 
34256   struct ResolveImageInfo2KHR
34257   {
34258     static const bool allowDuplicate = false;
34259     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2KHR;
34260 
34261 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34262     VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT
34263     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ )
34264     {}
34265 
34266     VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34267 
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34268     ResolveImageInfo2KHR( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34269     {
34270       *this = rhs;
34271     }
34272 
34273 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ResolveImageInfo2KHRVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34274     ResolveImageInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2KHR> const & regions_ )
34275     : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
34276     {}
34277 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34278 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34279 
operator =VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34280     ResolveImageInfo2KHR & operator=( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34281     {
34282       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR const *>( &rhs );
34283       return *this;
34284     }
34285 
operator =VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34286     ResolveImageInfo2KHR & operator=( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
34287     {
34288       memcpy( static_cast<void *>( this ), &rhs, sizeof( ResolveImageInfo2KHR ) );
34289       return *this;
34290     }
34291 
setPNextVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34292     ResolveImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34293     {
34294       pNext = pNext_;
34295       return *this;
34296     }
34297 
setSrcImageVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34298     ResolveImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
34299     {
34300       srcImage = srcImage_;
34301       return *this;
34302     }
34303 
setSrcImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34304     ResolveImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
34305     {
34306       srcImageLayout = srcImageLayout_;
34307       return *this;
34308     }
34309 
setDstImageVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34310     ResolveImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
34311     {
34312       dstImage = dstImage_;
34313       return *this;
34314     }
34315 
setDstImageLayoutVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34316     ResolveImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
34317     {
34318       dstImageLayout = dstImageLayout_;
34319       return *this;
34320     }
34321 
setRegionCountVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34322     ResolveImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
34323     {
34324       regionCount = regionCount_;
34325       return *this;
34326     }
34327 
setPRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34328     ResolveImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
34329     {
34330       pRegions = pRegions_;
34331       return *this;
34332     }
34333 
34334 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34335     ResolveImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2KHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
34336     {
34337       regionCount = static_cast<uint32_t>( regions_.size() );
34338       pRegions = regions_.data();
34339       return *this;
34340     }
34341 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34342 
34343 
operator VkResolveImageInfo2KHR const&VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34344     operator VkResolveImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
34345     {
34346       return *reinterpret_cast<const VkResolveImageInfo2KHR*>( this );
34347     }
34348 
operator VkResolveImageInfo2KHR&VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34349     operator VkResolveImageInfo2KHR &() VULKAN_HPP_NOEXCEPT
34350     {
34351       return *reinterpret_cast<VkResolveImageInfo2KHR*>( this );
34352     }
34353 
34354 
34355 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34356     auto operator<=>( ResolveImageInfo2KHR const& ) const = default;
34357 #else
operator ==VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34358     bool operator==( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34359     {
34360       return ( sType == rhs.sType )
34361           && ( pNext == rhs.pNext )
34362           && ( srcImage == rhs.srcImage )
34363           && ( srcImageLayout == rhs.srcImageLayout )
34364           && ( dstImage == rhs.dstImage )
34365           && ( dstImageLayout == rhs.dstImageLayout )
34366           && ( regionCount == rhs.regionCount )
34367           && ( pRegions == rhs.pRegions );
34368     }
34369 
operator !=VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR34370     bool operator!=( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
34371     {
34372       return !operator==( rhs );
34373     }
34374 #endif
34375 
34376 
34377 
34378   public:
34379     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2KHR;
34380     const void* pNext = {};
34381     VULKAN_HPP_NAMESPACE::Image srcImage = {};
34382     VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
34383     VULKAN_HPP_NAMESPACE::Image dstImage = {};
34384     VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
34385     uint32_t regionCount = {};
34386     const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions = {};
34387 
34388   };
34389   static_assert( sizeof( ResolveImageInfo2KHR ) == sizeof( VkResolveImageInfo2KHR ), "struct and wrapper have different size!" );
34390   static_assert( std::is_standard_layout<ResolveImageInfo2KHR>::value, "struct wrapper is not a standard layout!" );
34391 
34392   template <>
34393   struct CppType<StructureType, StructureType::eResolveImageInfo2KHR>
34394   {
34395     using Type = ResolveImageInfo2KHR;
34396   };
34397 
34398   struct PerformanceMarkerInfoINTEL
34399   {
34400     static const bool allowDuplicate = false;
34401     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL;
34402 
34403 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34404     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL(uint64_t marker_ = {}) VULKAN_HPP_NOEXCEPT
34405     : marker( marker_ )
34406     {}
34407 
34408     VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34409 
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34410     PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34411     {
34412       *this = rhs;
34413     }
34414 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34415 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34416     PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34417     {
34418       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const *>( &rhs );
34419       return *this;
34420     }
34421 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34422     PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34423     {
34424       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceMarkerInfoINTEL ) );
34425       return *this;
34426     }
34427 
setPNextVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34428     PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34429     {
34430       pNext = pNext_;
34431       return *this;
34432     }
34433 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34434     PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT
34435     {
34436       marker = marker_;
34437       return *this;
34438     }
34439 
34440 
operator VkPerformanceMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34441     operator VkPerformanceMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
34442     {
34443       return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( this );
34444     }
34445 
operator VkPerformanceMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34446     operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
34447     {
34448       return *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>( this );
34449     }
34450 
34451 
34452 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34453     auto operator<=>( PerformanceMarkerInfoINTEL const& ) const = default;
34454 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34455     bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34456     {
34457       return ( sType == rhs.sType )
34458           && ( pNext == rhs.pNext )
34459           && ( marker == rhs.marker );
34460     }
34461 
operator !=VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL34462     bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34463     {
34464       return !operator==( rhs );
34465     }
34466 #endif
34467 
34468 
34469 
34470   public:
34471     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
34472     const void* pNext = {};
34473     uint64_t marker = {};
34474 
34475   };
34476   static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" );
34477   static_assert( std::is_standard_layout<PerformanceMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
34478 
34479   template <>
34480   struct CppType<StructureType, StructureType::ePerformanceMarkerInfoINTEL>
34481   {
34482     using Type = PerformanceMarkerInfoINTEL;
34483   };
34484 
34485   struct PerformanceOverrideInfoINTEL
34486   {
34487     static const bool allowDuplicate = false;
34488     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL;
34489 
34490 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34491     VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware, VULKAN_HPP_NAMESPACE::Bool32 enable_ = {}, uint64_t parameter_ = {}) VULKAN_HPP_NOEXCEPT
34492     : type( type_ ), enable( enable_ ), parameter( parameter_ )
34493     {}
34494 
34495     VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34496 
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34497     PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34498     {
34499       *this = rhs;
34500     }
34501 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34502 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34503     PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34504     {
34505       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const *>( &rhs );
34506       return *this;
34507     }
34508 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34509     PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34510     {
34511       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceOverrideInfoINTEL ) );
34512       return *this;
34513     }
34514 
setPNextVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34515     PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34516     {
34517       pNext = pNext_;
34518       return *this;
34519     }
34520 
setTypeVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34521     PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
34522     {
34523       type = type_;
34524       return *this;
34525     }
34526 
setEnableVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34527     PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT
34528     {
34529       enable = enable_;
34530       return *this;
34531     }
34532 
setParameterVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34533     PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT
34534     {
34535       parameter = parameter_;
34536       return *this;
34537     }
34538 
34539 
operator VkPerformanceOverrideInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34540     operator VkPerformanceOverrideInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
34541     {
34542       return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( this );
34543     }
34544 
operator VkPerformanceOverrideInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34545     operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
34546     {
34547       return *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>( this );
34548     }
34549 
34550 
34551 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34552     auto operator<=>( PerformanceOverrideInfoINTEL const& ) const = default;
34553 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34554     bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34555     {
34556       return ( sType == rhs.sType )
34557           && ( pNext == rhs.pNext )
34558           && ( type == rhs.type )
34559           && ( enable == rhs.enable )
34560           && ( parameter == rhs.parameter );
34561     }
34562 
operator !=VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL34563     bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34564     {
34565       return !operator==( rhs );
34566     }
34567 #endif
34568 
34569 
34570 
34571   public:
34572     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
34573     const void* pNext = {};
34574     VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware;
34575     VULKAN_HPP_NAMESPACE::Bool32 enable = {};
34576     uint64_t parameter = {};
34577 
34578   };
34579   static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" );
34580   static_assert( std::is_standard_layout<PerformanceOverrideInfoINTEL>::value, "struct wrapper is not a standard layout!" );
34581 
34582   template <>
34583   struct CppType<StructureType, StructureType::ePerformanceOverrideInfoINTEL>
34584   {
34585     using Type = PerformanceOverrideInfoINTEL;
34586   };
34587 
34588   struct PerformanceStreamMarkerInfoINTEL
34589   {
34590     static const bool allowDuplicate = false;
34591     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL;
34592 
34593 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34594     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL(uint32_t marker_ = {}) VULKAN_HPP_NOEXCEPT
34595     : marker( marker_ )
34596     {}
34597 
34598     VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34599 
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34600     PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34601     {
34602       *this = rhs;
34603     }
34604 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34605 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34606     PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34607     {
34608       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const *>( &rhs );
34609       return *this;
34610     }
34611 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34612     PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
34613     {
34614       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceStreamMarkerInfoINTEL ) );
34615       return *this;
34616     }
34617 
setPNextVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34618     PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
34619     {
34620       pNext = pNext_;
34621       return *this;
34622     }
34623 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34624     PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT
34625     {
34626       marker = marker_;
34627       return *this;
34628     }
34629 
34630 
operator VkPerformanceStreamMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34631     operator VkPerformanceStreamMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
34632     {
34633       return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( this );
34634     }
34635 
operator VkPerformanceStreamMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34636     operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
34637     {
34638       return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>( this );
34639     }
34640 
34641 
34642 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34643     auto operator<=>( PerformanceStreamMarkerInfoINTEL const& ) const = default;
34644 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34645     bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34646     {
34647       return ( sType == rhs.sType )
34648           && ( pNext == rhs.pNext )
34649           && ( marker == rhs.marker );
34650     }
34651 
operator !=VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL34652     bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
34653     {
34654       return !operator==( rhs );
34655     }
34656 #endif
34657 
34658 
34659 
34660   public:
34661     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
34662     const void* pNext = {};
34663     uint32_t marker = {};
34664 
34665   };
34666   static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" );
34667   static_assert( std::is_standard_layout<PerformanceStreamMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
34668 
34669   template <>
34670   struct CppType<StructureType, StructureType::ePerformanceStreamMarkerInfoINTEL>
34671   {
34672     using Type = PerformanceStreamMarkerInfoINTEL;
34673   };
34674 
34675   struct Viewport
34676   {
34677 
34678 
34679 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportVULKAN_HPP_NAMESPACE::Viewport34680     VULKAN_HPP_CONSTEXPR Viewport(float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {}) VULKAN_HPP_NOEXCEPT
34681     : x( x_ ), y( y_ ), width( width_ ), height( height_ ), minDepth( minDepth_ ), maxDepth( maxDepth_ )
34682     {}
34683 
34684     VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34685 
ViewportVULKAN_HPP_NAMESPACE::Viewport34686     Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
34687     {
34688       *this = rhs;
34689     }
34690 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34691 
operator =VULKAN_HPP_NAMESPACE::Viewport34692     Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
34693     {
34694       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Viewport const *>( &rhs );
34695       return *this;
34696     }
34697 
operator =VULKAN_HPP_NAMESPACE::Viewport34698     Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT
34699     {
34700       memcpy( static_cast<void *>( this ), &rhs, sizeof( Viewport ) );
34701       return *this;
34702     }
34703 
setXVULKAN_HPP_NAMESPACE::Viewport34704     Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT
34705     {
34706       x = x_;
34707       return *this;
34708     }
34709 
setYVULKAN_HPP_NAMESPACE::Viewport34710     Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT
34711     {
34712       y = y_;
34713       return *this;
34714     }
34715 
setWidthVULKAN_HPP_NAMESPACE::Viewport34716     Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT
34717     {
34718       width = width_;
34719       return *this;
34720     }
34721 
setHeightVULKAN_HPP_NAMESPACE::Viewport34722     Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT
34723     {
34724       height = height_;
34725       return *this;
34726     }
34727 
setMinDepthVULKAN_HPP_NAMESPACE::Viewport34728     Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT
34729     {
34730       minDepth = minDepth_;
34731       return *this;
34732     }
34733 
setMaxDepthVULKAN_HPP_NAMESPACE::Viewport34734     Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT
34735     {
34736       maxDepth = maxDepth_;
34737       return *this;
34738     }
34739 
34740 
operator VkViewport const&VULKAN_HPP_NAMESPACE::Viewport34741     operator VkViewport const&() const VULKAN_HPP_NOEXCEPT
34742     {
34743       return *reinterpret_cast<const VkViewport*>( this );
34744     }
34745 
operator VkViewport&VULKAN_HPP_NAMESPACE::Viewport34746     operator VkViewport &() VULKAN_HPP_NOEXCEPT
34747     {
34748       return *reinterpret_cast<VkViewport*>( this );
34749     }
34750 
34751 
34752 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34753     auto operator<=>( Viewport const& ) const = default;
34754 #else
operator ==VULKAN_HPP_NAMESPACE::Viewport34755     bool operator==( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
34756     {
34757       return ( x == rhs.x )
34758           && ( y == rhs.y )
34759           && ( width == rhs.width )
34760           && ( height == rhs.height )
34761           && ( minDepth == rhs.minDepth )
34762           && ( maxDepth == rhs.maxDepth );
34763     }
34764 
operator !=VULKAN_HPP_NAMESPACE::Viewport34765     bool operator!=( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT
34766     {
34767       return !operator==( rhs );
34768     }
34769 #endif
34770 
34771 
34772 
34773   public:
34774     float x = {};
34775     float y = {};
34776     float width = {};
34777     float height = {};
34778     float minDepth = {};
34779     float maxDepth = {};
34780 
34781   };
34782   static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" );
34783   static_assert( std::is_standard_layout<Viewport>::value, "struct wrapper is not a standard layout!" );
34784 
34785   struct ShadingRatePaletteNV
34786   {
34787 
34788 
34789 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34790     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV(uint32_t shadingRatePaletteEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = {}) VULKAN_HPP_NOEXCEPT
34791     : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ), pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
34792     {}
34793 
34794     VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34795 
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34796     ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
34797     {
34798       *this = rhs;
34799     }
34800 
34801 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34802     ShadingRatePaletteNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ )
34803     : shadingRatePaletteEntryCount( static_cast<uint32_t>( shadingRatePaletteEntries_.size() ) ), pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() )
34804     {}
34805 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34806 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34807 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34808     ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
34809     {
34810       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const *>( &rhs );
34811       return *this;
34812     }
34813 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34814     ShadingRatePaletteNV & operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
34815     {
34816       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShadingRatePaletteNV ) );
34817       return *this;
34818     }
34819 
setShadingRatePaletteEntryCountVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34820     ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT
34821     {
34822       shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
34823       return *this;
34824     }
34825 
setPShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34826     ShadingRatePaletteNV & setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
34827     {
34828       pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
34829       return *this;
34830     }
34831 
34832 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34833     ShadingRatePaletteNV & setShadingRatePaletteEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
34834     {
34835       shadingRatePaletteEntryCount = static_cast<uint32_t>( shadingRatePaletteEntries_.size() );
34836       pShadingRatePaletteEntries = shadingRatePaletteEntries_.data();
34837       return *this;
34838     }
34839 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
34840 
34841 
operator VkShadingRatePaletteNV const&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34842     operator VkShadingRatePaletteNV const&() const VULKAN_HPP_NOEXCEPT
34843     {
34844       return *reinterpret_cast<const VkShadingRatePaletteNV*>( this );
34845     }
34846 
operator VkShadingRatePaletteNV&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34847     operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
34848     {
34849       return *reinterpret_cast<VkShadingRatePaletteNV*>( this );
34850     }
34851 
34852 
34853 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34854     auto operator<=>( ShadingRatePaletteNV const& ) const = default;
34855 #else
operator ==VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34856     bool operator==( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34857     {
34858       return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount )
34859           && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
34860     }
34861 
operator !=VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV34862     bool operator!=( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34863     {
34864       return !operator==( rhs );
34865     }
34866 #endif
34867 
34868 
34869 
34870   public:
34871     uint32_t shadingRatePaletteEntryCount = {};
34872     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries = {};
34873 
34874   };
34875   static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" );
34876   static_assert( std::is_standard_layout<ShadingRatePaletteNV>::value, "struct wrapper is not a standard layout!" );
34877 
34878   struct ViewportWScalingNV
34879   {
34880 
34881 
34882 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV34883     VULKAN_HPP_CONSTEXPR ViewportWScalingNV(float xcoeff_ = {}, float ycoeff_ = {}) VULKAN_HPP_NOEXCEPT
34884     : xcoeff( xcoeff_ ), ycoeff( ycoeff_ )
34885     {}
34886 
34887     VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34888 
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV34889     ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
34890     {
34891       *this = rhs;
34892     }
34893 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34894 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV34895     ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
34896     {
34897       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportWScalingNV const *>( &rhs );
34898       return *this;
34899     }
34900 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV34901     ViewportWScalingNV & operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
34902     {
34903       memcpy( static_cast<void *>( this ), &rhs, sizeof( ViewportWScalingNV ) );
34904       return *this;
34905     }
34906 
setXcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV34907     ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT
34908     {
34909       xcoeff = xcoeff_;
34910       return *this;
34911     }
34912 
setYcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV34913     ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT
34914     {
34915       ycoeff = ycoeff_;
34916       return *this;
34917     }
34918 
34919 
operator VkViewportWScalingNV const&VULKAN_HPP_NAMESPACE::ViewportWScalingNV34920     operator VkViewportWScalingNV const&() const VULKAN_HPP_NOEXCEPT
34921     {
34922       return *reinterpret_cast<const VkViewportWScalingNV*>( this );
34923     }
34924 
operator VkViewportWScalingNV&VULKAN_HPP_NAMESPACE::ViewportWScalingNV34925     operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
34926     {
34927       return *reinterpret_cast<VkViewportWScalingNV*>( this );
34928     }
34929 
34930 
34931 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
34932     auto operator<=>( ViewportWScalingNV const& ) const = default;
34933 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportWScalingNV34934     bool operator==( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34935     {
34936       return ( xcoeff == rhs.xcoeff )
34937           && ( ycoeff == rhs.ycoeff );
34938     }
34939 
operator !=VULKAN_HPP_NAMESPACE::ViewportWScalingNV34940     bool operator!=( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT
34941     {
34942       return !operator==( rhs );
34943     }
34944 #endif
34945 
34946 
34947 
34948   public:
34949     float xcoeff = {};
34950     float ycoeff = {};
34951 
34952   };
34953   static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" );
34954   static_assert( std::is_standard_layout<ViewportWScalingNV>::value, "struct wrapper is not a standard layout!" );
34955 
34956 #ifdef VK_ENABLE_BETA_EXTENSIONS
34957   struct StridedBufferRegionKHR
34958   {
34959 
34960 
34961 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34962     VULKAN_HPP_CONSTEXPR StridedBufferRegionKHR(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
34963     : buffer( buffer_ ), offset( offset_ ), stride( stride_ ), size( size_ )
34964     {}
34965 
34966     VULKAN_HPP_CONSTEXPR StridedBufferRegionKHR( StridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
34967 
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34968     StridedBufferRegionKHR( VkStridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34969     {
34970       *this = rhs;
34971     }
34972 
StridedBufferRegionKHRVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34973     explicit StridedBufferRegionKHR( IndirectCommandsStreamNV const& indirectCommandsStreamNV, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} )
34974       : buffer( indirectCommandsStreamNV.buffer )
34975       , offset( indirectCommandsStreamNV.offset )
34976       , stride( stride_ )
34977       , size( size_ )
34978     {}
34979 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
34980 
operator =VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34981     StridedBufferRegionKHR & operator=( VkStridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34982     {
34983       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR const *>( &rhs );
34984       return *this;
34985     }
34986 
operator =VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34987     StridedBufferRegionKHR & operator=( StridedBufferRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
34988     {
34989       memcpy( static_cast<void *>( this ), &rhs, sizeof( StridedBufferRegionKHR ) );
34990       return *this;
34991     }
34992 
setBufferVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34993     StridedBufferRegionKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
34994     {
34995       buffer = buffer_;
34996       return *this;
34997     }
34998 
setOffsetVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR34999     StridedBufferRegionKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
35000     {
35001       offset = offset_;
35002       return *this;
35003     }
35004 
setStrideVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR35005     StridedBufferRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
35006     {
35007       stride = stride_;
35008       return *this;
35009     }
35010 
setSizeVULKAN_HPP_NAMESPACE::StridedBufferRegionKHR35011     StridedBufferRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
35012     {
35013       size = size_;
35014       return *this;
35015     }
35016 
35017 
operator VkStridedBufferRegionKHR const&VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR35018     operator VkStridedBufferRegionKHR const&() const VULKAN_HPP_NOEXCEPT
35019     {
35020       return *reinterpret_cast<const VkStridedBufferRegionKHR*>( this );
35021     }
35022 
operator VkStridedBufferRegionKHR&VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR35023     operator VkStridedBufferRegionKHR &() VULKAN_HPP_NOEXCEPT
35024     {
35025       return *reinterpret_cast<VkStridedBufferRegionKHR*>( this );
35026     }
35027 
35028 
35029 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35030     auto operator<=>( StridedBufferRegionKHR const& ) const = default;
35031 #else
operator ==VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR35032     bool operator==( StridedBufferRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
35033     {
35034       return ( buffer == rhs.buffer )
35035           && ( offset == rhs.offset )
35036           && ( stride == rhs.stride )
35037           && ( size == rhs.size );
35038     }
35039 
operator !=VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR35040     bool operator!=( StridedBufferRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
35041     {
35042       return !operator==( rhs );
35043     }
35044 #endif
35045 
35046 
35047 
35048   public:
35049     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
35050     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
35051     VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
35052     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
35053 
35054   };
35055   static_assert( sizeof( StridedBufferRegionKHR ) == sizeof( VkStridedBufferRegionKHR ), "struct and wrapper have different size!" );
35056   static_assert( std::is_standard_layout<StridedBufferRegionKHR>::value, "struct wrapper is not a standard layout!" );
35057 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35058 
35059   class CommandBuffer
35060   {
35061   public:
35062     using CType = VkCommandBuffer;
35063 
35064     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer;
35065     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer;
35066 
35067   public:
CommandBuffer()35068     VULKAN_HPP_CONSTEXPR CommandBuffer() VULKAN_HPP_NOEXCEPT
35069       : m_commandBuffer(VK_NULL_HANDLE)
35070     {}
35071 
CommandBuffer(std::nullptr_t)35072     VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
35073       : m_commandBuffer(VK_NULL_HANDLE)
35074     {}
35075 
CommandBuffer(VkCommandBuffer commandBuffer)35076     VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT
35077       : m_commandBuffer( commandBuffer )
35078     {}
35079 
35080 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandBuffer commandBuffer)35081     CommandBuffer & operator=(VkCommandBuffer commandBuffer) VULKAN_HPP_NOEXCEPT
35082     {
35083       m_commandBuffer = commandBuffer;
35084       return *this;
35085     }
35086 #endif
35087 
operator =(std::nullptr_t)35088     CommandBuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
35089     {
35090       m_commandBuffer = VK_NULL_HANDLE;
35091       return *this;
35092     }
35093 
35094 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
35095     auto operator<=>( CommandBuffer const& ) const = default;
35096 #else
operator ==(CommandBuffer const & rhs) const35097     bool operator==( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
35098     {
35099       return m_commandBuffer == rhs.m_commandBuffer;
35100     }
35101 
operator !=(CommandBuffer const & rhs) const35102     bool operator!=(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
35103     {
35104       return m_commandBuffer != rhs.m_commandBuffer;
35105     }
35106 
operator <(CommandBuffer const & rhs) const35107     bool operator<(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT
35108     {
35109       return m_commandBuffer < rhs.m_commandBuffer;
35110     }
35111 #endif
35112 
35113 
35114     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35115     VULKAN_HPP_NODISCARD Result begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35116 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35117     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35118     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35119 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35120 
35121 
35122     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35123     void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35124 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35125     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35126     void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35127 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35128 
35129 
35130     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35131     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35132 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35133     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35134     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35135 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35136 
35137 
35138     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35139     void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35140 
35141 
35142     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35143     void beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35144 
35145 
35146     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35147     void beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35148 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35149     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35150     void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35151 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35152 
35153 
35154     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35155     void beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35156 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35157     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35158     void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35159 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35160 
35161     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35162     void beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35163 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35164     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35165     void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35166 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35167 
35168 
35169     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35170     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35171 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35172     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35173     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35174 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35175 
35176 
35177     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35178     void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35179 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35180     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35181     void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, ArrayProxy<const uint32_t> const & dynamicOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35182 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35183 
35184 
35185     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35186     void bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35187 
35188 
35189     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35190     void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35191 
35192 
35193     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35194     void bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35195 
35196 
35197     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35198     void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35199 
35200 
35201     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35202     void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35203 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35204     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35205     void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35206 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35207 
35208 
35209     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35210     void bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35211 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35212     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35213     void bindVertexBuffers( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35214 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35215 
35216 
35217     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35218     void bindVertexBuffers2EXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, const VULKAN_HPP_NAMESPACE::DeviceSize* pStrides, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35219 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35220     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35221     void bindVertexBuffers2EXT( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35222 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35223 
35224 
35225     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35226     void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageBlit* pRegions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35227 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35228     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35229     void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35230 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35231 
35232 
35233     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35234     void blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35235 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35236     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35237     void blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35238 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35239 
35240 
35241 #ifdef VK_ENABLE_BETA_EXTENSIONS
35242     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35243     void buildAccelerationStructureIndirectKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::Buffer indirectBuffer, VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset, uint32_t indirectStride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35244 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35245     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35246     void buildAccelerationStructureIndirectKHR( const AccelerationStructureBuildGeometryInfoKHR & info, VULKAN_HPP_NAMESPACE::Buffer indirectBuffer, VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset, uint32_t indirectStride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35247 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35248 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35249 
35250 
35251 #ifdef VK_ENABLE_BETA_EXTENSIONS
35252     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35253     void buildAccelerationStructureKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35254 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35255     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35256     void buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const > const & pOffsetInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35257 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35258 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35259 
35260 
35261     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35262     void buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35263 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35264     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35265     void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35266 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35267 
35268 
35269     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35270     void clearAttachments( uint32_t attachmentCount, const VULKAN_HPP_NAMESPACE::ClearAttachment* pAttachments, uint32_t rectCount, const VULKAN_HPP_NAMESPACE::ClearRect* pRects, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35271 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35272     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35273     void clearAttachments( ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments, ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35274 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35275 
35276 
35277     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35278     void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearColorValue* pColor, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35279 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35280     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35281     void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35282 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35283 
35284 
35285     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35286     void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35287 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35288     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35289     void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35290 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35291 
35292 
35293 #ifdef VK_ENABLE_BETA_EXTENSIONS
35294     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35295     void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35296 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35297     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35298     void copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35299 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35300 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35301 
35302 
35303     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35304     void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35305 
35306 
35307 #ifdef VK_ENABLE_BETA_EXTENSIONS
35308     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35309     void copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35310 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35311     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35312     void copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35313 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35314 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35315 
35316 
35317     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35318     void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferCopy* pRegions, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35319 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35320     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35321     void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35322 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35323 
35324 
35325     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35326     void copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35327 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35328     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35329     void copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35330 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35331 
35332 
35333     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35334     void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35335 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35336     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35337     void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35338 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35339 
35340 
35341     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35342     void copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35343 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35344     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35345     void copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35346 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35347 
35348 
35349     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35350     void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageCopy* pRegions, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35351 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35352     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35353     void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35354 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35355 
35356 
35357     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35358     void copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35359 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35360     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35361     void copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35362 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35363 
35364 
35365     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35366     void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35368     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35369     void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35370 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35371 
35372 
35373     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35374     void copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35375 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35376     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35377     void copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35378 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35379 
35380 
35381 #ifdef VK_ENABLE_BETA_EXTENSIONS
35382     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35383     void copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35384 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35385     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35386     void copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35387 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35388 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35389 
35390 
35391     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35392     void copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35393 
35394 
35395     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35396     void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35397 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35398     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35399     void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35400 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35401 
35402 
35403     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35404     void debugMarkerEndEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35405 
35406 
35407     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35408     void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35409 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35410     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35411     void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35412 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35413 
35414 
35415     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35416     void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35417 
35418 
35419     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35420     void dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35421 
35422     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35423     void dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35424 
35425 
35426     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35427     void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35428 
35429 
35430     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35431     void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35432 
35433 
35434     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35435     void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35436 
35437 
35438     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35439     void drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35440 
35441 
35442     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35443     void drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35444 
35445     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35446     void drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35447 
35448     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35449     void drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35450 
35451 
35452     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35453     void drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35454 
35455 
35456     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35457     void drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VULKAN_HPP_NAMESPACE::Buffer counterBuffer, VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35458 
35459 
35460     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35461     void drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35462 
35463     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35464     void drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35465 
35466     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35467     void drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35468 
35469 
35470     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35471     void drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35472 
35473 
35474     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35475     void drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35476 
35477 
35478     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35479     void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35480 
35481 
35482     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35483     void endConditionalRenderingEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35484 
35485 
35486     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35487     void endDebugUtilsLabelEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35488 
35489 
35490     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35491     void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35492 
35493 
35494     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35495     void endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35496 
35497 
35498     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35499     void endRenderPass( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35500 
35501 
35502     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35503     void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35504 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35505     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35506     void endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35507 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35508 
35509     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35510     void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35511 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35512     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35513     void endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35514 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35515 
35516 
35517     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35518     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35519 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35520     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35521     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
35522 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35523 
35524 
35525     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35526     void executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35527 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35528     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35529     void executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35530 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35531 
35532 
35533     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35534     void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35535 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35536     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35537     void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35538 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35539 
35540 
35541     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35542     void fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35543 
35544 
35545     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35546     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35547 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35548     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35549     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35550 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35551 
35552 
35553     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35554     void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35555 
35556 
35557     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35558     void nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35559 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35560     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35561     void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35562 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35563 
35564     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35565     void nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35566 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35567     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35568     void nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35569 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35570 
35571 
35572     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35573     void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35574 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35575     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35576     void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35577 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35578 
35579 
35580     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35581     void preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35582 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35583     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35584     void preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35585 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35586 
35587 
35588     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35589     void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35590 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35591     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35592     void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy<const T> const & values, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35593 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35594 
35595 
35596     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35597     void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35598 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35599     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35600     void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35601 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35602 
35603 
35604     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35605     void pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35606 
35607 
35608     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35609     void resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35610 
35611 
35612     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35613     void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35614 
35615 
35616     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35617     void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageResolve* pRegions, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35618 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35619     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35620     void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35621 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35622 
35623 
35624     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35625     void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35626 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35627     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35628     void resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35629 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35630 
35631 
35632     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35633     void setBlendConstants( const float blendConstants[4], Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35634 
35635 
35636     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35637     void setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35638 
35639 
35640     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35641     void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35642 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35643     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35644     void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35645 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35646 
35647 
35648     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35649     void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35650 
35651 
35652     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35653     void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35654 
35655 
35656     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35657     void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35658 
35659 
35660     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35661     void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35662 
35663 
35664     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35665     void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35666 
35667 
35668     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35669     void setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35670 
35671 
35672     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35673     void setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35674 
35675 
35676     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35677     void setDeviceMask( uint32_t deviceMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35678 
35679     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35680     void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35681 
35682 
35683     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35684     void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35685 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35686     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35687     void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35688 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35689 
35690 
35691     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35692     void setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35693 
35694 
35695     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35696     void setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35697 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35698     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35699     void setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35700 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35701 
35702 
35703     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35704     void setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35705 
35706 
35707     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35708     void setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D* pFragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35709 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35710     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35711     void setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35712 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35713 
35714 
35715     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35716     void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35717 
35718 
35719     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35720     void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35721 
35722 
35723     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35724     void setLineWidth( float lineWidth, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35725 
35726 
35727     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35728     VULKAN_HPP_NODISCARD Result setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35729 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35730     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35731     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35733 
35734 
35735     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35736     VULKAN_HPP_NODISCARD Result setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35737 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35738     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35739     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35740 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35741 
35742 
35743     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35744     VULKAN_HPP_NODISCARD Result setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35745 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35746     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35747     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35748 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35749 
35750 
35751     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35752     void setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35753 
35754 
35755     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35756     void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35757 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35758     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35759     void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35760 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35761 
35762 
35763     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35764     void setScissor( uint32_t firstScissor, uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35765 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35766     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35767     void setScissor( uint32_t firstScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35768 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35769 
35770 
35771     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35772     void setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35773 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35774     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35775     void setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35777 
35778 
35779     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35780     void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35781 
35782 
35783     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35784     void setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, VULKAN_HPP_NAMESPACE::StencilOp failOp, VULKAN_HPP_NAMESPACE::StencilOp passOp, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, VULKAN_HPP_NAMESPACE::CompareOp compareOp, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35785 
35786 
35787     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35788     void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35789 
35790 
35791     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35792     void setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35793 
35794 
35795     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35796     void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35797 
35798 
35799     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35800     void setViewport( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35801 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35802     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35803     void setViewport( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35805 
35806 
35807     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35808     void setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35809 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35810     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35811     void setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35812 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35813 
35814 
35815     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35816     void setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35817 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35818     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35819     void setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35820 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35821 
35822 
35823     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35824     void setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35825 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35826     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35827     void setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35828 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35829 
35830 
35831 #ifdef VK_ENABLE_BETA_EXTENSIONS
35832     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35833     void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35834 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35835     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35836     void traceRaysIndirectKHR( const StridedBufferRegionKHR & raygenShaderBindingTable, const StridedBufferRegionKHR & missShaderBindingTable, const StridedBufferRegionKHR & hitShaderBindingTable, const StridedBufferRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35837 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35838 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35839 
35840 
35841 #ifdef VK_ENABLE_BETA_EXTENSIONS
35842     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35843     void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35844 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35845     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35846     void traceRaysKHR( const StridedBufferRegionKHR & raygenShaderBindingTable, const StridedBufferRegionKHR & missShaderBindingTable, const StridedBufferRegionKHR & hitShaderBindingTable, const StridedBufferRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35847 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35848 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35849 
35850 
35851     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35852     void traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35853 
35854 
35855     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35856     void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize dataSize, const void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35857 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35858     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35859     void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy<const T> const & data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35860 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35861 
35862 
35863     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35864     void waitEvents( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35865 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35866     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35867     void waitEvents( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35868 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35869 
35870 
35871 #ifdef VK_ENABLE_BETA_EXTENSIONS
35872     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35873     void writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35874 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35875     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35876     void writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35877 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35878 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
35879 
35880     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35881     void writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35882 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
35883     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35884     void writeAccelerationStructuresPropertiesNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35885 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35886 
35887 
35888     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35889     void writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35890 
35891 
35892     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35893     void writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35894 
35895 
35896 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
35897     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35898     VULKAN_HPP_NODISCARD Result end( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35899 #else
35900     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35901     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35902 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35903 
35904 
35905 
35906 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
35907     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35908     VULKAN_HPP_NODISCARD Result reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
35909 #else
35910     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
35911     typename ResultValueType<void>::type reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
35912 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
35913 
35914 
operator VkCommandBuffer() const35915     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT
35916     {
35917       return m_commandBuffer;
35918     }
35919 
operator bool() const35920     explicit operator bool() const VULKAN_HPP_NOEXCEPT
35921     {
35922       return m_commandBuffer != VK_NULL_HANDLE;
35923     }
35924 
operator !() const35925     bool operator!() const VULKAN_HPP_NOEXCEPT
35926     {
35927       return m_commandBuffer == VK_NULL_HANDLE;
35928     }
35929 
35930   private:
35931     VkCommandBuffer m_commandBuffer;
35932   };
35933   static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" );
35934 
35935   template <>
35936   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eCommandBuffer>
35937   {
35938     using type = VULKAN_HPP_NAMESPACE::CommandBuffer;
35939   };
35940 
35941   template <>
35942   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer>
35943   {
35944     using Type = VULKAN_HPP_NAMESPACE::CommandBuffer;
35945   };
35946 
35947 
35948   template <>
35949   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer>
35950   {
35951     using Type = VULKAN_HPP_NAMESPACE::CommandBuffer;
35952   };
35953 
35954 
35955   template <>
35956   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CommandBuffer>
35957   {
35958     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
35959   };
35960 
35961   struct MemoryAllocateInfo
35962   {
35963     static const bool allowDuplicate = false;
35964     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo;
35965 
35966 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35967     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeIndex_ = {}) VULKAN_HPP_NOEXCEPT
35968     : allocationSize( allocationSize_ ), memoryTypeIndex( memoryTypeIndex_ )
35969     {}
35970 
35971     VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
35972 
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35973     MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35974     {
35975       *this = rhs;
35976     }
35977 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
35978 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35979     MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35980     {
35981       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const *>( &rhs );
35982       return *this;
35983     }
35984 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo35985     MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
35986     {
35987       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryAllocateInfo ) );
35988       return *this;
35989     }
35990 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35991     MemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
35992     {
35993       pNext = pNext_;
35994       return *this;
35995     }
35996 
setAllocationSizeVULKAN_HPP_NAMESPACE::MemoryAllocateInfo35997     MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT
35998     {
35999       allocationSize = allocationSize_;
36000       return *this;
36001     }
36002 
setMemoryTypeIndexVULKAN_HPP_NAMESPACE::MemoryAllocateInfo36003     MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT
36004     {
36005       memoryTypeIndex = memoryTypeIndex_;
36006       return *this;
36007     }
36008 
36009 
operator VkMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo36010     operator VkMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
36011     {
36012       return *reinterpret_cast<const VkMemoryAllocateInfo*>( this );
36013     }
36014 
operator VkMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo36015     operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
36016     {
36017       return *reinterpret_cast<VkMemoryAllocateInfo*>( this );
36018     }
36019 
36020 
36021 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36022     auto operator<=>( MemoryAllocateInfo const& ) const = default;
36023 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateInfo36024     bool operator==( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36025     {
36026       return ( sType == rhs.sType )
36027           && ( pNext == rhs.pNext )
36028           && ( allocationSize == rhs.allocationSize )
36029           && ( memoryTypeIndex == rhs.memoryTypeIndex );
36030     }
36031 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateInfo36032     bool operator!=( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36033     {
36034       return !operator==( rhs );
36035     }
36036 #endif
36037 
36038 
36039 
36040   public:
36041     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo;
36042     const void* pNext = {};
36043     VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
36044     uint32_t memoryTypeIndex = {};
36045 
36046   };
36047   static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" );
36048   static_assert( std::is_standard_layout<MemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
36049 
36050   template <>
36051   struct CppType<StructureType, StructureType::eMemoryAllocateInfo>
36052   {
36053     using Type = MemoryAllocateInfo;
36054   };
36055 
36056   class PipelineCache
36057   {
36058   public:
36059     using CType = VkPipelineCache;
36060 
36061     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache;
36062     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
36063 
36064   public:
PipelineCache()36065     VULKAN_HPP_CONSTEXPR PipelineCache() VULKAN_HPP_NOEXCEPT
36066       : m_pipelineCache(VK_NULL_HANDLE)
36067     {}
36068 
PipelineCache(std::nullptr_t)36069     VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
36070       : m_pipelineCache(VK_NULL_HANDLE)
36071     {}
36072 
PipelineCache(VkPipelineCache pipelineCache)36073     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT
36074       : m_pipelineCache( pipelineCache )
36075     {}
36076 
36077 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineCache pipelineCache)36078     PipelineCache & operator=(VkPipelineCache pipelineCache) VULKAN_HPP_NOEXCEPT
36079     {
36080       m_pipelineCache = pipelineCache;
36081       return *this;
36082     }
36083 #endif
36084 
operator =(std::nullptr_t)36085     PipelineCache & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
36086     {
36087       m_pipelineCache = VK_NULL_HANDLE;
36088       return *this;
36089     }
36090 
36091 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36092     auto operator<=>( PipelineCache const& ) const = default;
36093 #else
operator ==(PipelineCache const & rhs) const36094     bool operator==( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
36095     {
36096       return m_pipelineCache == rhs.m_pipelineCache;
36097     }
36098 
operator !=(PipelineCache const & rhs) const36099     bool operator!=(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
36100     {
36101       return m_pipelineCache != rhs.m_pipelineCache;
36102     }
36103 
operator <(PipelineCache const & rhs) const36104     bool operator<(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT
36105     {
36106       return m_pipelineCache < rhs.m_pipelineCache;
36107     }
36108 #endif
36109 
operator VkPipelineCache() const36110     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const VULKAN_HPP_NOEXCEPT
36111     {
36112       return m_pipelineCache;
36113     }
36114 
operator bool() const36115     explicit operator bool() const VULKAN_HPP_NOEXCEPT
36116     {
36117       return m_pipelineCache != VK_NULL_HANDLE;
36118     }
36119 
operator !() const36120     bool operator!() const VULKAN_HPP_NOEXCEPT
36121     {
36122       return m_pipelineCache == VK_NULL_HANDLE;
36123     }
36124 
36125   private:
36126     VkPipelineCache m_pipelineCache;
36127   };
36128   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" );
36129 
36130   template <>
36131   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePipelineCache>
36132   {
36133     using type = VULKAN_HPP_NAMESPACE::PipelineCache;
36134   };
36135 
36136   template <>
36137   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache>
36138   {
36139     using Type = VULKAN_HPP_NAMESPACE::PipelineCache;
36140   };
36141 
36142 
36143   template <>
36144   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache>
36145   {
36146     using Type = VULKAN_HPP_NAMESPACE::PipelineCache;
36147   };
36148 
36149 
36150   template <>
36151   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PipelineCache>
36152   {
36153     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
36154   };
36155 
36156   struct EventCreateInfo
36157   {
36158     static const bool allowDuplicate = false;
36159     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo;
36160 
36161 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo36162     VULKAN_HPP_CONSTEXPR EventCreateInfo(VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
36163     : flags( flags_ )
36164     {}
36165 
36166     VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36167 
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo36168     EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36169     {
36170       *this = rhs;
36171     }
36172 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36173 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo36174     EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36175     {
36176       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::EventCreateInfo const *>( &rhs );
36177       return *this;
36178     }
36179 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo36180     EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36181     {
36182       memcpy( static_cast<void *>( this ), &rhs, sizeof( EventCreateInfo ) );
36183       return *this;
36184     }
36185 
setPNextVULKAN_HPP_NAMESPACE::EventCreateInfo36186     EventCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36187     {
36188       pNext = pNext_;
36189       return *this;
36190     }
36191 
setFlagsVULKAN_HPP_NAMESPACE::EventCreateInfo36192     EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36193     {
36194       flags = flags_;
36195       return *this;
36196     }
36197 
36198 
operator VkEventCreateInfo const&VULKAN_HPP_NAMESPACE::EventCreateInfo36199     operator VkEventCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36200     {
36201       return *reinterpret_cast<const VkEventCreateInfo*>( this );
36202     }
36203 
operator VkEventCreateInfo&VULKAN_HPP_NAMESPACE::EventCreateInfo36204     operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT
36205     {
36206       return *reinterpret_cast<VkEventCreateInfo*>( this );
36207     }
36208 
36209 
36210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36211     auto operator<=>( EventCreateInfo const& ) const = default;
36212 #else
operator ==VULKAN_HPP_NAMESPACE::EventCreateInfo36213     bool operator==( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36214     {
36215       return ( sType == rhs.sType )
36216           && ( pNext == rhs.pNext )
36217           && ( flags == rhs.flags );
36218     }
36219 
operator !=VULKAN_HPP_NAMESPACE::EventCreateInfo36220     bool operator!=( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36221     {
36222       return !operator==( rhs );
36223     }
36224 #endif
36225 
36226 
36227 
36228   public:
36229     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo;
36230     const void* pNext = {};
36231     VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {};
36232 
36233   };
36234   static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" );
36235   static_assert( std::is_standard_layout<EventCreateInfo>::value, "struct wrapper is not a standard layout!" );
36236 
36237   template <>
36238   struct CppType<StructureType, StructureType::eEventCreateInfo>
36239   {
36240     using Type = EventCreateInfo;
36241   };
36242 
36243   struct FenceCreateInfo
36244   {
36245     static const bool allowDuplicate = false;
36246     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo;
36247 
36248 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo36249     VULKAN_HPP_CONSTEXPR FenceCreateInfo(VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
36250     : flags( flags_ )
36251     {}
36252 
36253     VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36254 
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo36255     FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36256     {
36257       *this = rhs;
36258     }
36259 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36260 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo36261     FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36262     {
36263       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceCreateInfo const *>( &rhs );
36264       return *this;
36265     }
36266 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo36267     FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36268     {
36269       memcpy( static_cast<void *>( this ), &rhs, sizeof( FenceCreateInfo ) );
36270       return *this;
36271     }
36272 
setPNextVULKAN_HPP_NAMESPACE::FenceCreateInfo36273     FenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36274     {
36275       pNext = pNext_;
36276       return *this;
36277     }
36278 
setFlagsVULKAN_HPP_NAMESPACE::FenceCreateInfo36279     FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36280     {
36281       flags = flags_;
36282       return *this;
36283     }
36284 
36285 
operator VkFenceCreateInfo const&VULKAN_HPP_NAMESPACE::FenceCreateInfo36286     operator VkFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36287     {
36288       return *reinterpret_cast<const VkFenceCreateInfo*>( this );
36289     }
36290 
operator VkFenceCreateInfo&VULKAN_HPP_NAMESPACE::FenceCreateInfo36291     operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
36292     {
36293       return *reinterpret_cast<VkFenceCreateInfo*>( this );
36294     }
36295 
36296 
36297 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36298     auto operator<=>( FenceCreateInfo const& ) const = default;
36299 #else
operator ==VULKAN_HPP_NAMESPACE::FenceCreateInfo36300     bool operator==( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36301     {
36302       return ( sType == rhs.sType )
36303           && ( pNext == rhs.pNext )
36304           && ( flags == rhs.flags );
36305     }
36306 
operator !=VULKAN_HPP_NAMESPACE::FenceCreateInfo36307     bool operator!=( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36308     {
36309       return !operator==( rhs );
36310     }
36311 #endif
36312 
36313 
36314 
36315   public:
36316     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo;
36317     const void* pNext = {};
36318     VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {};
36319 
36320   };
36321   static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" );
36322   static_assert( std::is_standard_layout<FenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
36323 
36324   template <>
36325   struct CppType<StructureType, StructureType::eFenceCreateInfo>
36326   {
36327     using Type = FenceCreateInfo;
36328   };
36329 
36330   struct FramebufferCreateInfo
36331   {
36332     static const bool allowDuplicate = false;
36333     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo;
36334 
36335 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36336     VULKAN_HPP_CONSTEXPR FramebufferCreateInfo(VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layers_ = {}) VULKAN_HPP_NOEXCEPT
36337     : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), width( width_ ), height( height_ ), layers( layers_ )
36338     {}
36339 
36340     VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36341 
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36342     FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36343     {
36344       *this = rhs;
36345     }
36346 
36347 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36348     FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_, VULKAN_HPP_NAMESPACE::RenderPass renderPass_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layers_ = {} )
36349     : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), width( width_ ), height( height_ ), layers( layers_ )
36350     {}
36351 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36352 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36353 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36354     FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36355     {
36356       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const *>( &rhs );
36357       return *this;
36358     }
36359 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36360     FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36361     {
36362       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferCreateInfo ) );
36363       return *this;
36364     }
36365 
setPNextVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36366     FramebufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36367     {
36368       pNext = pNext_;
36369       return *this;
36370     }
36371 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36372     FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36373     {
36374       flags = flags_;
36375       return *this;
36376     }
36377 
setRenderPassVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36378     FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
36379     {
36380       renderPass = renderPass_;
36381       return *this;
36382     }
36383 
setAttachmentCountVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36384     FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
36385     {
36386       attachmentCount = attachmentCount_;
36387       return *this;
36388     }
36389 
setPAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36390     FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
36391     {
36392       pAttachments = pAttachments_;
36393       return *this;
36394     }
36395 
36396 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36397     FramebufferCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
36398     {
36399       attachmentCount = static_cast<uint32_t>( attachments_.size() );
36400       pAttachments = attachments_.data();
36401       return *this;
36402     }
36403 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36404 
setWidthVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36405     FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
36406     {
36407       width = width_;
36408       return *this;
36409     }
36410 
setHeightVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36411     FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
36412     {
36413       height = height_;
36414       return *this;
36415     }
36416 
setLayersVULKAN_HPP_NAMESPACE::FramebufferCreateInfo36417     FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT
36418     {
36419       layers = layers_;
36420       return *this;
36421     }
36422 
36423 
operator VkFramebufferCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36424     operator VkFramebufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36425     {
36426       return *reinterpret_cast<const VkFramebufferCreateInfo*>( this );
36427     }
36428 
operator VkFramebufferCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36429     operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT
36430     {
36431       return *reinterpret_cast<VkFramebufferCreateInfo*>( this );
36432     }
36433 
36434 
36435 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36436     auto operator<=>( FramebufferCreateInfo const& ) const = default;
36437 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36438     bool operator==( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36439     {
36440       return ( sType == rhs.sType )
36441           && ( pNext == rhs.pNext )
36442           && ( flags == rhs.flags )
36443           && ( renderPass == rhs.renderPass )
36444           && ( attachmentCount == rhs.attachmentCount )
36445           && ( pAttachments == rhs.pAttachments )
36446           && ( width == rhs.width )
36447           && ( height == rhs.height )
36448           && ( layers == rhs.layers );
36449     }
36450 
operator !=VULKAN_HPP_NAMESPACE::FramebufferCreateInfo36451     bool operator!=( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36452     {
36453       return !operator==( rhs );
36454     }
36455 #endif
36456 
36457 
36458 
36459   public:
36460     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo;
36461     const void* pNext = {};
36462     VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {};
36463     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
36464     uint32_t attachmentCount = {};
36465     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
36466     uint32_t width = {};
36467     uint32_t height = {};
36468     uint32_t layers = {};
36469 
36470   };
36471   static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" );
36472   static_assert( std::is_standard_layout<FramebufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
36473 
36474   template <>
36475   struct CppType<StructureType, StructureType::eFramebufferCreateInfo>
36476   {
36477     using Type = FramebufferCreateInfo;
36478   };
36479 
36480   struct VertexInputBindingDescription
36481   {
36482 
36483 
36484 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36485     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription(uint32_t binding_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex) VULKAN_HPP_NOEXCEPT
36486     : binding( binding_ ), stride( stride_ ), inputRate( inputRate_ )
36487     {}
36488 
36489     VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36490 
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36491     VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36492     {
36493       *this = rhs;
36494     }
36495 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36496 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36497     VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36498     {
36499       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const *>( &rhs );
36500       return *this;
36501     }
36502 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36503     VertexInputBindingDescription & operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36504     {
36505       memcpy( static_cast<void *>( this ), &rhs, sizeof( VertexInputBindingDescription ) );
36506       return *this;
36507     }
36508 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36509     VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
36510     {
36511       binding = binding_;
36512       return *this;
36513     }
36514 
setStrideVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36515     VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
36516     {
36517       stride = stride_;
36518       return *this;
36519     }
36520 
setInputRateVULKAN_HPP_NAMESPACE::VertexInputBindingDescription36521     VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
36522     {
36523       inputRate = inputRate_;
36524       return *this;
36525     }
36526 
36527 
operator VkVertexInputBindingDescription const&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36528     operator VkVertexInputBindingDescription const&() const VULKAN_HPP_NOEXCEPT
36529     {
36530       return *reinterpret_cast<const VkVertexInputBindingDescription*>( this );
36531     }
36532 
operator VkVertexInputBindingDescription&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36533     operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT
36534     {
36535       return *reinterpret_cast<VkVertexInputBindingDescription*>( this );
36536     }
36537 
36538 
36539 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36540     auto operator<=>( VertexInputBindingDescription const& ) const = default;
36541 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36542     bool operator==( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36543     {
36544       return ( binding == rhs.binding )
36545           && ( stride == rhs.stride )
36546           && ( inputRate == rhs.inputRate );
36547     }
36548 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDescription36549     bool operator!=( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36550     {
36551       return !operator==( rhs );
36552     }
36553 #endif
36554 
36555 
36556 
36557   public:
36558     uint32_t binding = {};
36559     uint32_t stride = {};
36560     VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
36561 
36562   };
36563   static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" );
36564   static_assert( std::is_standard_layout<VertexInputBindingDescription>::value, "struct wrapper is not a standard layout!" );
36565 
36566   struct VertexInputAttributeDescription
36567   {
36568 
36569 
36570 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36571     VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription(uint32_t location_ = {}, uint32_t binding_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint32_t offset_ = {}) VULKAN_HPP_NOEXCEPT
36572     : location( location_ ), binding( binding_ ), format( format_ ), offset( offset_ )
36573     {}
36574 
36575     VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36576 
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36577     VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36578     {
36579       *this = rhs;
36580     }
36581 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36582 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36583     VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36584     {
36585       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const *>( &rhs );
36586       return *this;
36587     }
36588 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36589     VertexInputAttributeDescription & operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
36590     {
36591       memcpy( static_cast<void *>( this ), &rhs, sizeof( VertexInputAttributeDescription ) );
36592       return *this;
36593     }
36594 
setLocationVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36595     VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
36596     {
36597       location = location_;
36598       return *this;
36599     }
36600 
setBindingVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36601     VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
36602     {
36603       binding = binding_;
36604       return *this;
36605     }
36606 
setFormatVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36607     VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
36608     {
36609       format = format_;
36610       return *this;
36611     }
36612 
setOffsetVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36613     VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
36614     {
36615       offset = offset_;
36616       return *this;
36617     }
36618 
36619 
operator VkVertexInputAttributeDescription const&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36620     operator VkVertexInputAttributeDescription const&() const VULKAN_HPP_NOEXCEPT
36621     {
36622       return *reinterpret_cast<const VkVertexInputAttributeDescription*>( this );
36623     }
36624 
operator VkVertexInputAttributeDescription&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36625     operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT
36626     {
36627       return *reinterpret_cast<VkVertexInputAttributeDescription*>( this );
36628     }
36629 
36630 
36631 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36632     auto operator<=>( VertexInputAttributeDescription const& ) const = default;
36633 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36634     bool operator==( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36635     {
36636       return ( location == rhs.location )
36637           && ( binding == rhs.binding )
36638           && ( format == rhs.format )
36639           && ( offset == rhs.offset );
36640     }
36641 
operator !=VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription36642     bool operator!=( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
36643     {
36644       return !operator==( rhs );
36645     }
36646 #endif
36647 
36648 
36649 
36650   public:
36651     uint32_t location = {};
36652     uint32_t binding = {};
36653     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
36654     uint32_t offset = {};
36655 
36656   };
36657   static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" );
36658   static_assert( std::is_standard_layout<VertexInputAttributeDescription>::value, "struct wrapper is not a standard layout!" );
36659 
36660   struct PipelineVertexInputStateCreateInfo
36661   {
36662     static const bool allowDuplicate = false;
36663     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo;
36664 
36665 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36666     VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ = {}, uint32_t vertexBindingDescriptionCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ = {}, uint32_t vertexAttributeDescriptionCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ = {}) VULKAN_HPP_NOEXCEPT
36667     : flags( flags_ ), vertexBindingDescriptionCount( vertexBindingDescriptionCount_ ), pVertexBindingDescriptions( pVertexBindingDescriptions_ ), vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ ), pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
36668     {}
36669 
36670     VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36671 
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36672     PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36673     {
36674       *this = rhs;
36675     }
36676 
36677 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36678     PipelineVertexInputStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ = {} )
36679     : flags( flags_ ), vertexBindingDescriptionCount( static_cast<uint32_t>( vertexBindingDescriptions_.size() ) ), pVertexBindingDescriptions( vertexBindingDescriptions_.data() ), vertexAttributeDescriptionCount( static_cast<uint32_t>( vertexAttributeDescriptions_.size() ) ), pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() )
36680     {}
36681 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36682 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36683 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36684     PipelineVertexInputStateCreateInfo & operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36685     {
36686       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const *>( &rhs );
36687       return *this;
36688     }
36689 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36690     PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36691     {
36692       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineVertexInputStateCreateInfo ) );
36693       return *this;
36694     }
36695 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36696     PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36697     {
36698       pNext = pNext_;
36699       return *this;
36700     }
36701 
setFlagsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36702     PipelineVertexInputStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36703     {
36704       flags = flags_;
36705       return *this;
36706     }
36707 
setVertexBindingDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36708     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
36709     {
36710       vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
36711       return *this;
36712     }
36713 
setPVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36714     PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
36715     {
36716       pVertexBindingDescriptions = pVertexBindingDescriptions_;
36717       return *this;
36718     }
36719 
36720 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36721     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
36722     {
36723       vertexBindingDescriptionCount = static_cast<uint32_t>( vertexBindingDescriptions_.size() );
36724       pVertexBindingDescriptions = vertexBindingDescriptions_.data();
36725       return *this;
36726     }
36727 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36728 
setVertexAttributeDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36729     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
36730     {
36731       vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
36732       return *this;
36733     }
36734 
setPVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36735     PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
36736     {
36737       pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
36738       return *this;
36739     }
36740 
36741 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36742     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
36743     {
36744       vertexAttributeDescriptionCount = static_cast<uint32_t>( vertexAttributeDescriptions_.size() );
36745       pVertexAttributeDescriptions = vertexAttributeDescriptions_.data();
36746       return *this;
36747     }
36748 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
36749 
36750 
operator VkPipelineVertexInputStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36751     operator VkPipelineVertexInputStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36752     {
36753       return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo*>( this );
36754     }
36755 
operator VkPipelineVertexInputStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36756     operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36757     {
36758       return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>( this );
36759     }
36760 
36761 
36762 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36763     auto operator<=>( PipelineVertexInputStateCreateInfo const& ) const = default;
36764 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36765     bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36766     {
36767       return ( sType == rhs.sType )
36768           && ( pNext == rhs.pNext )
36769           && ( flags == rhs.flags )
36770           && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount )
36771           && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions )
36772           && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount )
36773           && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
36774     }
36775 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo36776     bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36777     {
36778       return !operator==( rhs );
36779     }
36780 #endif
36781 
36782 
36783 
36784   public:
36785     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
36786     const void* pNext = {};
36787     VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {};
36788     uint32_t vertexBindingDescriptionCount = {};
36789     const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions = {};
36790     uint32_t vertexAttributeDescriptionCount = {};
36791     const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions = {};
36792 
36793   };
36794   static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" );
36795   static_assert( std::is_standard_layout<PipelineVertexInputStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36796 
36797   template <>
36798   struct CppType<StructureType, StructureType::ePipelineVertexInputStateCreateInfo>
36799   {
36800     using Type = PipelineVertexInputStateCreateInfo;
36801   };
36802 
36803   struct PipelineInputAssemblyStateCreateInfo
36804   {
36805     static const bool allowDuplicate = false;
36806     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo;
36807 
36808 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36809     VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList, VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {}) VULKAN_HPP_NOEXCEPT
36810     : flags( flags_ ), topology( topology_ ), primitiveRestartEnable( primitiveRestartEnable_ )
36811     {}
36812 
36813     VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36814 
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36815     PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36816     {
36817       *this = rhs;
36818     }
36819 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36820 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36821     PipelineInputAssemblyStateCreateInfo & operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36822     {
36823       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const *>( &rhs );
36824       return *this;
36825     }
36826 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36827     PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36828     {
36829       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineInputAssemblyStateCreateInfo ) );
36830       return *this;
36831     }
36832 
setPNextVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36833     PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36834     {
36835       pNext = pNext_;
36836       return *this;
36837     }
36838 
setFlagsVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36839     PipelineInputAssemblyStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36840     {
36841       flags = flags_;
36842       return *this;
36843     }
36844 
setTopologyVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36845     PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT
36846     {
36847       topology = topology_;
36848       return *this;
36849     }
36850 
setPrimitiveRestartEnableVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36851     PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
36852     {
36853       primitiveRestartEnable = primitiveRestartEnable_;
36854       return *this;
36855     }
36856 
36857 
operator VkPipelineInputAssemblyStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36858     operator VkPipelineInputAssemblyStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36859     {
36860       return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo*>( this );
36861     }
36862 
operator VkPipelineInputAssemblyStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36863     operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36864     {
36865       return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>( this );
36866     }
36867 
36868 
36869 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36870     auto operator<=>( PipelineInputAssemblyStateCreateInfo const& ) const = default;
36871 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36872     bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36873     {
36874       return ( sType == rhs.sType )
36875           && ( pNext == rhs.pNext )
36876           && ( flags == rhs.flags )
36877           && ( topology == rhs.topology )
36878           && ( primitiveRestartEnable == rhs.primitiveRestartEnable );
36879     }
36880 
operator !=VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo36881     bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36882     {
36883       return !operator==( rhs );
36884     }
36885 #endif
36886 
36887 
36888 
36889   public:
36890     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
36891     const void* pNext = {};
36892     VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {};
36893     VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList;
36894     VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {};
36895 
36896   };
36897   static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" );
36898   static_assert( std::is_standard_layout<PipelineInputAssemblyStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36899 
36900   template <>
36901   struct CppType<StructureType, StructureType::ePipelineInputAssemblyStateCreateInfo>
36902   {
36903     using Type = PipelineInputAssemblyStateCreateInfo;
36904   };
36905 
36906   struct PipelineTessellationStateCreateInfo
36907   {
36908     static const bool allowDuplicate = false;
36909     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo;
36910 
36911 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36912     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {}, uint32_t patchControlPoints_ = {}) VULKAN_HPP_NOEXCEPT
36913     : flags( flags_ ), patchControlPoints( patchControlPoints_ )
36914     {}
36915 
36916     VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
36917 
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36918     PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36919     {
36920       *this = rhs;
36921     }
36922 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
36923 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36924     PipelineTessellationStateCreateInfo & operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36925     {
36926       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const *>( &rhs );
36927       return *this;
36928     }
36929 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36930     PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
36931     {
36932       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineTessellationStateCreateInfo ) );
36933       return *this;
36934     }
36935 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36936     PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
36937     {
36938       pNext = pNext_;
36939       return *this;
36940     }
36941 
setFlagsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36942     PipelineTessellationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
36943     {
36944       flags = flags_;
36945       return *this;
36946     }
36947 
setPatchControlPointsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36948     PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT
36949     {
36950       patchControlPoints = patchControlPoints_;
36951       return *this;
36952     }
36953 
36954 
operator VkPipelineTessellationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36955     operator VkPipelineTessellationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
36956     {
36957       return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo*>( this );
36958     }
36959 
operator VkPipelineTessellationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36960     operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
36961     {
36962       return *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>( this );
36963     }
36964 
36965 
36966 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
36967     auto operator<=>( PipelineTessellationStateCreateInfo const& ) const = default;
36968 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36969     bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36970     {
36971       return ( sType == rhs.sType )
36972           && ( pNext == rhs.pNext )
36973           && ( flags == rhs.flags )
36974           && ( patchControlPoints == rhs.patchControlPoints );
36975     }
36976 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo36977     bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
36978     {
36979       return !operator==( rhs );
36980     }
36981 #endif
36982 
36983 
36984 
36985   public:
36986     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
36987     const void* pNext = {};
36988     VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {};
36989     uint32_t patchControlPoints = {};
36990 
36991   };
36992   static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" );
36993   static_assert( std::is_standard_layout<PipelineTessellationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
36994 
36995   template <>
36996   struct CppType<StructureType, StructureType::ePipelineTessellationStateCreateInfo>
36997   {
36998     using Type = PipelineTessellationStateCreateInfo;
36999   };
37000 
37001   struct PipelineViewportStateCreateInfo
37002   {
37003     static const bool allowDuplicate = false;
37004     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo;
37005 
37006 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37007     VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ = {}, uint32_t scissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ = {}) VULKAN_HPP_NOEXCEPT
37008     : flags( flags_ ), viewportCount( viewportCount_ ), pViewports( pViewports_ ), scissorCount( scissorCount_ ), pScissors( pScissors_ )
37009     {}
37010 
37011     VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37012 
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37013     PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37014     {
37015       *this = rhs;
37016     }
37017 
37018 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37019     PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ = {} )
37020     : flags( flags_ ), viewportCount( static_cast<uint32_t>( viewports_.size() ) ), pViewports( viewports_.data() ), scissorCount( static_cast<uint32_t>( scissors_.size() ) ), pScissors( scissors_.data() )
37021     {}
37022 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37023 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37024 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37025     PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37026     {
37027       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const *>( &rhs );
37028       return *this;
37029     }
37030 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37031     PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37032     {
37033       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportStateCreateInfo ) );
37034       return *this;
37035     }
37036 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37037     PipelineViewportStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37038     {
37039       pNext = pNext_;
37040       return *this;
37041     }
37042 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37043     PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37044     {
37045       flags = flags_;
37046       return *this;
37047     }
37048 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37049     PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
37050     {
37051       viewportCount = viewportCount_;
37052       return *this;
37053     }
37054 
setPViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37055     PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ ) VULKAN_HPP_NOEXCEPT
37056     {
37057       pViewports = pViewports_;
37058       return *this;
37059     }
37060 
37061 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37062     PipelineViewportStateCreateInfo & setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_ ) VULKAN_HPP_NOEXCEPT
37063     {
37064       viewportCount = static_cast<uint32_t>( viewports_.size() );
37065       pViewports = viewports_.data();
37066       return *this;
37067     }
37068 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37069 
setScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37070     PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT
37071     {
37072       scissorCount = scissorCount_;
37073       return *this;
37074     }
37075 
setPScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37076     PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ ) VULKAN_HPP_NOEXCEPT
37077     {
37078       pScissors = pScissors_;
37079       return *this;
37080     }
37081 
37082 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37083     PipelineViewportStateCreateInfo & setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ ) VULKAN_HPP_NOEXCEPT
37084     {
37085       scissorCount = static_cast<uint32_t>( scissors_.size() );
37086       pScissors = scissors_.data();
37087       return *this;
37088     }
37089 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37090 
37091 
operator VkPipelineViewportStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37092     operator VkPipelineViewportStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37093     {
37094       return *reinterpret_cast<const VkPipelineViewportStateCreateInfo*>( this );
37095     }
37096 
operator VkPipelineViewportStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37097     operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37098     {
37099       return *reinterpret_cast<VkPipelineViewportStateCreateInfo*>( this );
37100     }
37101 
37102 
37103 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37104     auto operator<=>( PipelineViewportStateCreateInfo const& ) const = default;
37105 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37106     bool operator==( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37107     {
37108       return ( sType == rhs.sType )
37109           && ( pNext == rhs.pNext )
37110           && ( flags == rhs.flags )
37111           && ( viewportCount == rhs.viewportCount )
37112           && ( pViewports == rhs.pViewports )
37113           && ( scissorCount == rhs.scissorCount )
37114           && ( pScissors == rhs.pScissors );
37115     }
37116 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo37117     bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37118     {
37119       return !operator==( rhs );
37120     }
37121 #endif
37122 
37123 
37124 
37125   public:
37126     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
37127     const void* pNext = {};
37128     VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {};
37129     uint32_t viewportCount = {};
37130     const VULKAN_HPP_NAMESPACE::Viewport* pViewports = {};
37131     uint32_t scissorCount = {};
37132     const VULKAN_HPP_NAMESPACE::Rect2D* pScissors = {};
37133 
37134   };
37135   static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" );
37136   static_assert( std::is_standard_layout<PipelineViewportStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37137 
37138   template <>
37139   struct CppType<StructureType, StructureType::ePipelineViewportStateCreateInfo>
37140   {
37141     using Type = PipelineViewportStateCreateInfo;
37142   };
37143 
37144   struct PipelineRasterizationStateCreateInfo
37145   {
37146     static const bool allowDuplicate = false;
37147     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo;
37148 
37149 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37150     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ = {}, VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ = VULKAN_HPP_NAMESPACE::PolygonMode::eFill, VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ = {}, VULKAN_HPP_NAMESPACE::FrontFace frontFace_ = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise, VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ = {}, float depthBiasConstantFactor_ = {}, float depthBiasClamp_ = {}, float depthBiasSlopeFactor_ = {}, float lineWidth_ = {}) VULKAN_HPP_NOEXCEPT
37151     : flags( flags_ ), depthClampEnable( depthClampEnable_ ), rasterizerDiscardEnable( rasterizerDiscardEnable_ ), polygonMode( polygonMode_ ), cullMode( cullMode_ ), frontFace( frontFace_ ), depthBiasEnable( depthBiasEnable_ ), depthBiasConstantFactor( depthBiasConstantFactor_ ), depthBiasClamp( depthBiasClamp_ ), depthBiasSlopeFactor( depthBiasSlopeFactor_ ), lineWidth( lineWidth_ )
37152     {}
37153 
37154     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37155 
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37156     PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37157     {
37158       *this = rhs;
37159     }
37160 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37161 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37162     PipelineRasterizationStateCreateInfo & operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37163     {
37164       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const *>( &rhs );
37165       return *this;
37166     }
37167 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37168     PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37169     {
37170       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationStateCreateInfo ) );
37171       return *this;
37172     }
37173 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37174     PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37175     {
37176       pNext = pNext_;
37177       return *this;
37178     }
37179 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37180     PipelineRasterizationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37181     {
37182       flags = flags_;
37183       return *this;
37184     }
37185 
setDepthClampEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37186     PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT
37187     {
37188       depthClampEnable = depthClampEnable_;
37189       return *this;
37190     }
37191 
setRasterizerDiscardEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37192     PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
37193     {
37194       rasterizerDiscardEnable = rasterizerDiscardEnable_;
37195       return *this;
37196     }
37197 
setPolygonModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37198     PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT
37199     {
37200       polygonMode = polygonMode_;
37201       return *this;
37202     }
37203 
setCullModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37204     PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT
37205     {
37206       cullMode = cullMode_;
37207       return *this;
37208     }
37209 
setFrontFaceVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37210     PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT
37211     {
37212       frontFace = frontFace_;
37213       return *this;
37214     }
37215 
setDepthBiasEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37216     PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT
37217     {
37218       depthBiasEnable = depthBiasEnable_;
37219       return *this;
37220     }
37221 
setDepthBiasConstantFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37222     PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
37223     {
37224       depthBiasConstantFactor = depthBiasConstantFactor_;
37225       return *this;
37226     }
37227 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37228     PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
37229     {
37230       depthBiasClamp = depthBiasClamp_;
37231       return *this;
37232     }
37233 
setDepthBiasSlopeFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37234     PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
37235     {
37236       depthBiasSlopeFactor = depthBiasSlopeFactor_;
37237       return *this;
37238     }
37239 
setLineWidthVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37240     PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT
37241     {
37242       lineWidth = lineWidth_;
37243       return *this;
37244     }
37245 
37246 
operator VkPipelineRasterizationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37247     operator VkPipelineRasterizationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37248     {
37249       return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo*>( this );
37250     }
37251 
operator VkPipelineRasterizationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37252     operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37253     {
37254       return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>( this );
37255     }
37256 
37257 
37258 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37259     auto operator<=>( PipelineRasterizationStateCreateInfo const& ) const = default;
37260 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37261     bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37262     {
37263       return ( sType == rhs.sType )
37264           && ( pNext == rhs.pNext )
37265           && ( flags == rhs.flags )
37266           && ( depthClampEnable == rhs.depthClampEnable )
37267           && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable )
37268           && ( polygonMode == rhs.polygonMode )
37269           && ( cullMode == rhs.cullMode )
37270           && ( frontFace == rhs.frontFace )
37271           && ( depthBiasEnable == rhs.depthBiasEnable )
37272           && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor )
37273           && ( depthBiasClamp == rhs.depthBiasClamp )
37274           && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor )
37275           && ( lineWidth == rhs.lineWidth );
37276     }
37277 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo37278     bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37279     {
37280       return !operator==( rhs );
37281     }
37282 #endif
37283 
37284 
37285 
37286   public:
37287     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
37288     const void* pNext = {};
37289     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {};
37290     VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {};
37291     VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {};
37292     VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill;
37293     VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {};
37294     VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise;
37295     VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {};
37296     float depthBiasConstantFactor = {};
37297     float depthBiasClamp = {};
37298     float depthBiasSlopeFactor = {};
37299     float lineWidth = {};
37300 
37301   };
37302   static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" );
37303   static_assert( std::is_standard_layout<PipelineRasterizationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37304 
37305   template <>
37306   struct CppType<StructureType, StructureType::ePipelineRasterizationStateCreateInfo>
37307   {
37308     using Type = PipelineRasterizationStateCreateInfo;
37309   };
37310 
37311   struct PipelineMultisampleStateCreateInfo
37312   {
37313     static const bool allowDuplicate = false;
37314     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo;
37315 
37316 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37317     VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ = {}, float minSampleShading_ = {}, const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {}) VULKAN_HPP_NOEXCEPT
37318     : flags( flags_ ), rasterizationSamples( rasterizationSamples_ ), sampleShadingEnable( sampleShadingEnable_ ), minSampleShading( minSampleShading_ ), pSampleMask( pSampleMask_ ), alphaToCoverageEnable( alphaToCoverageEnable_ ), alphaToOneEnable( alphaToOneEnable_ )
37319     {}
37320 
37321     VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37322 
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37323     PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37324     {
37325       *this = rhs;
37326     }
37327 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37328 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37329     PipelineMultisampleStateCreateInfo & operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37330     {
37331       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const *>( &rhs );
37332       return *this;
37333     }
37334 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37335     PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37336     {
37337       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineMultisampleStateCreateInfo ) );
37338       return *this;
37339     }
37340 
setPNextVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37341     PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37342     {
37343       pNext = pNext_;
37344       return *this;
37345     }
37346 
setFlagsVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37347     PipelineMultisampleStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37348     {
37349       flags = flags_;
37350       return *this;
37351     }
37352 
setRasterizationSamplesVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37353     PipelineMultisampleStateCreateInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
37354     {
37355       rasterizationSamples = rasterizationSamples_;
37356       return *this;
37357     }
37358 
setSampleShadingEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37359     PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT
37360     {
37361       sampleShadingEnable = sampleShadingEnable_;
37362       return *this;
37363     }
37364 
setMinSampleShadingVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37365     PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT
37366     {
37367       minSampleShading = minSampleShading_;
37368       return *this;
37369     }
37370 
setPSampleMaskVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37371     PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ ) VULKAN_HPP_NOEXCEPT
37372     {
37373       pSampleMask = pSampleMask_;
37374       return *this;
37375     }
37376 
setAlphaToCoverageEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37377     PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
37378     {
37379       alphaToCoverageEnable = alphaToCoverageEnable_;
37380       return *this;
37381     }
37382 
setAlphaToOneEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37383     PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
37384     {
37385       alphaToOneEnable = alphaToOneEnable_;
37386       return *this;
37387     }
37388 
37389 
operator VkPipelineMultisampleStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37390     operator VkPipelineMultisampleStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37391     {
37392       return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo*>( this );
37393     }
37394 
operator VkPipelineMultisampleStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37395     operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37396     {
37397       return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>( this );
37398     }
37399 
37400 
37401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37402     auto operator<=>( PipelineMultisampleStateCreateInfo const& ) const = default;
37403 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37404     bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37405     {
37406       return ( sType == rhs.sType )
37407           && ( pNext == rhs.pNext )
37408           && ( flags == rhs.flags )
37409           && ( rasterizationSamples == rhs.rasterizationSamples )
37410           && ( sampleShadingEnable == rhs.sampleShadingEnable )
37411           && ( minSampleShading == rhs.minSampleShading )
37412           && ( pSampleMask == rhs.pSampleMask )
37413           && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable )
37414           && ( alphaToOneEnable == rhs.alphaToOneEnable );
37415     }
37416 
operator !=VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo37417     bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37418     {
37419       return !operator==( rhs );
37420     }
37421 #endif
37422 
37423 
37424 
37425   public:
37426     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
37427     const void* pNext = {};
37428     VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {};
37429     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
37430     VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {};
37431     float minSampleShading = {};
37432     const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask = {};
37433     VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {};
37434     VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {};
37435 
37436   };
37437   static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" );
37438   static_assert( std::is_standard_layout<PipelineMultisampleStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37439 
37440   template <>
37441   struct CppType<StructureType, StructureType::ePipelineMultisampleStateCreateInfo>
37442   {
37443     using Type = PipelineMultisampleStateCreateInfo;
37444   };
37445 
37446   struct StencilOpState
37447   {
37448 
37449 
37450 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState37451     VULKAN_HPP_CONSTEXPR StencilOpState(VULKAN_HPP_NAMESPACE::StencilOp failOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::StencilOp passOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, uint32_t compareMask_ = {}, uint32_t writeMask_ = {}, uint32_t reference_ = {}) VULKAN_HPP_NOEXCEPT
37452     : failOp( failOp_ ), passOp( passOp_ ), depthFailOp( depthFailOp_ ), compareOp( compareOp_ ), compareMask( compareMask_ ), writeMask( writeMask_ ), reference( reference_ )
37453     {}
37454 
37455     VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37456 
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState37457     StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37458     {
37459       *this = rhs;
37460     }
37461 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37462 
operator =VULKAN_HPP_NAMESPACE::StencilOpState37463     StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37464     {
37465       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StencilOpState const *>( &rhs );
37466       return *this;
37467     }
37468 
operator =VULKAN_HPP_NAMESPACE::StencilOpState37469     StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
37470     {
37471       memcpy( static_cast<void *>( this ), &rhs, sizeof( StencilOpState ) );
37472       return *this;
37473     }
37474 
setFailOpVULKAN_HPP_NAMESPACE::StencilOpState37475     StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT
37476     {
37477       failOp = failOp_;
37478       return *this;
37479     }
37480 
setPassOpVULKAN_HPP_NAMESPACE::StencilOpState37481     StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT
37482     {
37483       passOp = passOp_;
37484       return *this;
37485     }
37486 
setDepthFailOpVULKAN_HPP_NAMESPACE::StencilOpState37487     StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT
37488     {
37489       depthFailOp = depthFailOp_;
37490       return *this;
37491     }
37492 
setCompareOpVULKAN_HPP_NAMESPACE::StencilOpState37493     StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
37494     {
37495       compareOp = compareOp_;
37496       return *this;
37497     }
37498 
setCompareMaskVULKAN_HPP_NAMESPACE::StencilOpState37499     StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT
37500     {
37501       compareMask = compareMask_;
37502       return *this;
37503     }
37504 
setWriteMaskVULKAN_HPP_NAMESPACE::StencilOpState37505     StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT
37506     {
37507       writeMask = writeMask_;
37508       return *this;
37509     }
37510 
setReferenceVULKAN_HPP_NAMESPACE::StencilOpState37511     StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT
37512     {
37513       reference = reference_;
37514       return *this;
37515     }
37516 
37517 
operator VkStencilOpState const&VULKAN_HPP_NAMESPACE::StencilOpState37518     operator VkStencilOpState const&() const VULKAN_HPP_NOEXCEPT
37519     {
37520       return *reinterpret_cast<const VkStencilOpState*>( this );
37521     }
37522 
operator VkStencilOpState&VULKAN_HPP_NAMESPACE::StencilOpState37523     operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT
37524     {
37525       return *reinterpret_cast<VkStencilOpState*>( this );
37526     }
37527 
37528 
37529 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37530     auto operator<=>( StencilOpState const& ) const = default;
37531 #else
operator ==VULKAN_HPP_NAMESPACE::StencilOpState37532     bool operator==( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
37533     {
37534       return ( failOp == rhs.failOp )
37535           && ( passOp == rhs.passOp )
37536           && ( depthFailOp == rhs.depthFailOp )
37537           && ( compareOp == rhs.compareOp )
37538           && ( compareMask == rhs.compareMask )
37539           && ( writeMask == rhs.writeMask )
37540           && ( reference == rhs.reference );
37541     }
37542 
operator !=VULKAN_HPP_NAMESPACE::StencilOpState37543     bool operator!=( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT
37544     {
37545       return !operator==( rhs );
37546     }
37547 #endif
37548 
37549 
37550 
37551   public:
37552     VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37553     VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37554     VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
37555     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
37556     uint32_t compareMask = {};
37557     uint32_t writeMask = {};
37558     uint32_t reference = {};
37559 
37560   };
37561   static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" );
37562   static_assert( std::is_standard_layout<StencilOpState>::value, "struct wrapper is not a standard layout!" );
37563 
37564   struct PipelineDepthStencilStateCreateInfo
37565   {
37566     static const bool allowDuplicate = false;
37567     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo;
37568 
37569 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37570     VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ = {}, VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ = {}, VULKAN_HPP_NAMESPACE::StencilOpState front_ = {}, VULKAN_HPP_NAMESPACE::StencilOpState back_ = {}, float minDepthBounds_ = {}, float maxDepthBounds_ = {}) VULKAN_HPP_NOEXCEPT
37571     : flags( flags_ ), depthTestEnable( depthTestEnable_ ), depthWriteEnable( depthWriteEnable_ ), depthCompareOp( depthCompareOp_ ), depthBoundsTestEnable( depthBoundsTestEnable_ ), stencilTestEnable( stencilTestEnable_ ), front( front_ ), back( back_ ), minDepthBounds( minDepthBounds_ ), maxDepthBounds( maxDepthBounds_ )
37572     {}
37573 
37574     VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37575 
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37576     PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37577     {
37578       *this = rhs;
37579     }
37580 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37581 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37582     PipelineDepthStencilStateCreateInfo & operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37583     {
37584       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const *>( &rhs );
37585       return *this;
37586     }
37587 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37588     PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37589     {
37590       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineDepthStencilStateCreateInfo ) );
37591       return *this;
37592     }
37593 
setPNextVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37594     PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37595     {
37596       pNext = pNext_;
37597       return *this;
37598     }
37599 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37600     PipelineDepthStencilStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37601     {
37602       flags = flags_;
37603       return *this;
37604     }
37605 
setDepthTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37606     PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT
37607     {
37608       depthTestEnable = depthTestEnable_;
37609       return *this;
37610     }
37611 
setDepthWriteEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37612     PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT
37613     {
37614       depthWriteEnable = depthWriteEnable_;
37615       return *this;
37616     }
37617 
setDepthCompareOpVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37618     PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT
37619     {
37620       depthCompareOp = depthCompareOp_;
37621       return *this;
37622     }
37623 
setDepthBoundsTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37624     PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
37625     {
37626       depthBoundsTestEnable = depthBoundsTestEnable_;
37627       return *this;
37628     }
37629 
setStencilTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37630     PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT
37631     {
37632       stencilTestEnable = stencilTestEnable_;
37633       return *this;
37634     }
37635 
setFrontVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37636     PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT
37637     {
37638       front = front_;
37639       return *this;
37640     }
37641 
setBackVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37642     PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT
37643     {
37644       back = back_;
37645       return *this;
37646     }
37647 
setMinDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37648     PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT
37649     {
37650       minDepthBounds = minDepthBounds_;
37651       return *this;
37652     }
37653 
setMaxDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37654     PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT
37655     {
37656       maxDepthBounds = maxDepthBounds_;
37657       return *this;
37658     }
37659 
37660 
operator VkPipelineDepthStencilStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37661     operator VkPipelineDepthStencilStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37662     {
37663       return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo*>( this );
37664     }
37665 
operator VkPipelineDepthStencilStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37666     operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37667     {
37668       return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>( this );
37669     }
37670 
37671 
37672 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37673     auto operator<=>( PipelineDepthStencilStateCreateInfo const& ) const = default;
37674 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37675     bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37676     {
37677       return ( sType == rhs.sType )
37678           && ( pNext == rhs.pNext )
37679           && ( flags == rhs.flags )
37680           && ( depthTestEnable == rhs.depthTestEnable )
37681           && ( depthWriteEnable == rhs.depthWriteEnable )
37682           && ( depthCompareOp == rhs.depthCompareOp )
37683           && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable )
37684           && ( stencilTestEnable == rhs.stencilTestEnable )
37685           && ( front == rhs.front )
37686           && ( back == rhs.back )
37687           && ( minDepthBounds == rhs.minDepthBounds )
37688           && ( maxDepthBounds == rhs.maxDepthBounds );
37689     }
37690 
operator !=VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo37691     bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37692     {
37693       return !operator==( rhs );
37694     }
37695 #endif
37696 
37697 
37698 
37699   public:
37700     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
37701     const void* pNext = {};
37702     VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {};
37703     VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {};
37704     VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {};
37705     VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
37706     VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {};
37707     VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {};
37708     VULKAN_HPP_NAMESPACE::StencilOpState front = {};
37709     VULKAN_HPP_NAMESPACE::StencilOpState back = {};
37710     float minDepthBounds = {};
37711     float maxDepthBounds = {};
37712 
37713   };
37714   static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" );
37715   static_assert( std::is_standard_layout<PipelineDepthStencilStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37716 
37717   template <>
37718   struct CppType<StructureType, StructureType::ePipelineDepthStencilStateCreateInfo>
37719   {
37720     using Type = PipelineDepthStencilStateCreateInfo;
37721   };
37722 
37723   struct PipelineColorBlendAttachmentState
37724   {
37725 
37726 
37727 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37728     VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState(VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ = {}, VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {}) VULKAN_HPP_NOEXCEPT
37729     : blendEnable( blendEnable_ ), srcColorBlendFactor( srcColorBlendFactor_ ), dstColorBlendFactor( dstColorBlendFactor_ ), colorBlendOp( colorBlendOp_ ), srcAlphaBlendFactor( srcAlphaBlendFactor_ ), dstAlphaBlendFactor( dstAlphaBlendFactor_ ), alphaBlendOp( alphaBlendOp_ ), colorWriteMask( colorWriteMask_ )
37730     {}
37731 
37732     VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37733 
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37734     PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
37735     {
37736       *this = rhs;
37737     }
37738 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37739 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37740     PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
37741     {
37742       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const *>( &rhs );
37743       return *this;
37744     }
37745 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37746     PipelineColorBlendAttachmentState & operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
37747     {
37748       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineColorBlendAttachmentState ) );
37749       return *this;
37750     }
37751 
setBlendEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37752     PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT
37753     {
37754       blendEnable = blendEnable_;
37755       return *this;
37756     }
37757 
setSrcColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37758     PipelineColorBlendAttachmentState & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37759     {
37760       srcColorBlendFactor = srcColorBlendFactor_;
37761       return *this;
37762     }
37763 
setDstColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37764     PipelineColorBlendAttachmentState & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37765     {
37766       dstColorBlendFactor = dstColorBlendFactor_;
37767       return *this;
37768     }
37769 
setColorBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37770     PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
37771     {
37772       colorBlendOp = colorBlendOp_;
37773       return *this;
37774     }
37775 
setSrcAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37776     PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37777     {
37778       srcAlphaBlendFactor = srcAlphaBlendFactor_;
37779       return *this;
37780     }
37781 
setDstAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37782     PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
37783     {
37784       dstAlphaBlendFactor = dstAlphaBlendFactor_;
37785       return *this;
37786     }
37787 
setAlphaBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37788     PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
37789     {
37790       alphaBlendOp = alphaBlendOp_;
37791       return *this;
37792     }
37793 
setColorWriteMaskVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37794     PipelineColorBlendAttachmentState & setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
37795     {
37796       colorWriteMask = colorWriteMask_;
37797       return *this;
37798     }
37799 
37800 
operator VkPipelineColorBlendAttachmentState const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37801     operator VkPipelineColorBlendAttachmentState const&() const VULKAN_HPP_NOEXCEPT
37802     {
37803       return *reinterpret_cast<const VkPipelineColorBlendAttachmentState*>( this );
37804     }
37805 
operator VkPipelineColorBlendAttachmentState&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37806     operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT
37807     {
37808       return *reinterpret_cast<VkPipelineColorBlendAttachmentState*>( this );
37809     }
37810 
37811 
37812 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37813     auto operator<=>( PipelineColorBlendAttachmentState const& ) const = default;
37814 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37815     bool operator==( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
37816     {
37817       return ( blendEnable == rhs.blendEnable )
37818           && ( srcColorBlendFactor == rhs.srcColorBlendFactor )
37819           && ( dstColorBlendFactor == rhs.dstColorBlendFactor )
37820           && ( colorBlendOp == rhs.colorBlendOp )
37821           && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor )
37822           && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor )
37823           && ( alphaBlendOp == rhs.alphaBlendOp )
37824           && ( colorWriteMask == rhs.colorWriteMask );
37825     }
37826 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState37827     bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT
37828     {
37829       return !operator==( rhs );
37830     }
37831 #endif
37832 
37833 
37834 
37835   public:
37836     VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {};
37837     VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37838     VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37839     VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
37840     VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37841     VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
37842     VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
37843     VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {};
37844 
37845   };
37846   static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" );
37847   static_assert( std::is_standard_layout<PipelineColorBlendAttachmentState>::value, "struct wrapper is not a standard layout!" );
37848 
37849   struct PipelineColorBlendStateCreateInfo
37850   {
37851     static const bool allowDuplicate = false;
37852     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo;
37853 
37854 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37855     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ = {}, VULKAN_HPP_NAMESPACE::LogicOp logicOp_ = VULKAN_HPP_NAMESPACE::LogicOp::eClear, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ = {}, std::array<float,4> const& blendConstants_ = {}) VULKAN_HPP_NOEXCEPT
37856     : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), blendConstants( blendConstants_ )
37857     {}
37858 
37859     VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
37860 
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37861     PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37862     {
37863       *this = rhs;
37864     }
37865 
37866 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37867     PipelineColorBlendStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_, VULKAN_HPP_NAMESPACE::LogicOp logicOp_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_, std::array<float,4> const& blendConstants_ = {} )
37868     : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), blendConstants( blendConstants_ )
37869     {}
37870 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37871 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
37872 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37873     PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37874     {
37875       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const *>( &rhs );
37876       return *this;
37877     }
37878 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37879     PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
37880     {
37881       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineColorBlendStateCreateInfo ) );
37882       return *this;
37883     }
37884 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37885     PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
37886     {
37887       pNext = pNext_;
37888       return *this;
37889     }
37890 
setFlagsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37891     PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
37892     {
37893       flags = flags_;
37894       return *this;
37895     }
37896 
setLogicOpEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37897     PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT
37898     {
37899       logicOpEnable = logicOpEnable_;
37900       return *this;
37901     }
37902 
setLogicOpVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37903     PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT
37904     {
37905       logicOp = logicOp_;
37906       return *this;
37907     }
37908 
setAttachmentCountVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37909     PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
37910     {
37911       attachmentCount = attachmentCount_;
37912       return *this;
37913     }
37914 
setPAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37915     PipelineColorBlendStateCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ ) VULKAN_HPP_NOEXCEPT
37916     {
37917       pAttachments = pAttachments_;
37918       return *this;
37919     }
37920 
37921 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37922     PipelineColorBlendStateCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_ ) VULKAN_HPP_NOEXCEPT
37923     {
37924       attachmentCount = static_cast<uint32_t>( attachments_.size() );
37925       pAttachments = attachments_.data();
37926       return *this;
37927     }
37928 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
37929 
setBlendConstantsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37930     PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float,4> blendConstants_ ) VULKAN_HPP_NOEXCEPT
37931     {
37932       blendConstants = blendConstants_;
37933       return *this;
37934     }
37935 
37936 
operator VkPipelineColorBlendStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37937     operator VkPipelineColorBlendStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
37938     {
37939       return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo*>( this );
37940     }
37941 
operator VkPipelineColorBlendStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37942     operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT
37943     {
37944       return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>( this );
37945     }
37946 
37947 
37948 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
37949     auto operator<=>( PipelineColorBlendStateCreateInfo const& ) const = default;
37950 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37951     bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37952     {
37953       return ( sType == rhs.sType )
37954           && ( pNext == rhs.pNext )
37955           && ( flags == rhs.flags )
37956           && ( logicOpEnable == rhs.logicOpEnable )
37957           && ( logicOp == rhs.logicOp )
37958           && ( attachmentCount == rhs.attachmentCount )
37959           && ( pAttachments == rhs.pAttachments )
37960           && ( blendConstants == rhs.blendConstants );
37961     }
37962 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo37963     bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
37964     {
37965       return !operator==( rhs );
37966     }
37967 #endif
37968 
37969 
37970 
37971   public:
37972     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
37973     const void* pNext = {};
37974     VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {};
37975     VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {};
37976     VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear;
37977     uint32_t attachmentCount = {};
37978     const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments = {};
37979     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> blendConstants = {};
37980 
37981   };
37982   static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" );
37983   static_assert( std::is_standard_layout<PipelineColorBlendStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
37984 
37985   template <>
37986   struct CppType<StructureType, StructureType::ePipelineColorBlendStateCreateInfo>
37987   {
37988     using Type = PipelineColorBlendStateCreateInfo;
37989   };
37990 
37991   struct PipelineDynamicStateCreateInfo
37992   {
37993     static const bool allowDuplicate = false;
37994     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo;
37995 
37996 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo37997     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {}, uint32_t dynamicStateCount_ = {}, const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ = {}) VULKAN_HPP_NOEXCEPT
37998     : flags( flags_ ), dynamicStateCount( dynamicStateCount_ ), pDynamicStates( pDynamicStates_ )
37999     {}
38000 
38001     VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38002 
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38003     PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38004     {
38005       *this = rhs;
38006     }
38007 
38008 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38009     PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ )
38010     : flags( flags_ ), dynamicStateCount( static_cast<uint32_t>( dynamicStates_.size() ) ), pDynamicStates( dynamicStates_.data() )
38011     {}
38012 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38013 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38014 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38015     PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38016     {
38017       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const *>( &rhs );
38018       return *this;
38019     }
38020 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38021     PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38022     {
38023       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineDynamicStateCreateInfo ) );
38024       return *this;
38025     }
38026 
setPNextVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38027     PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38028     {
38029       pNext = pNext_;
38030       return *this;
38031     }
38032 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38033     PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38034     {
38035       flags = flags_;
38036       return *this;
38037     }
38038 
setDynamicStateCountVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38039     PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT
38040     {
38041       dynamicStateCount = dynamicStateCount_;
38042       return *this;
38043     }
38044 
setPDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38045     PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ ) VULKAN_HPP_NOEXCEPT
38046     {
38047       pDynamicStates = pDynamicStates_;
38048       return *this;
38049     }
38050 
38051 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38052     PipelineDynamicStateCreateInfo & setDynamicStates( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ ) VULKAN_HPP_NOEXCEPT
38053     {
38054       dynamicStateCount = static_cast<uint32_t>( dynamicStates_.size() );
38055       pDynamicStates = dynamicStates_.data();
38056       return *this;
38057     }
38058 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38059 
38060 
operator VkPipelineDynamicStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38061     operator VkPipelineDynamicStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38062     {
38063       return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo*>( this );
38064     }
38065 
operator VkPipelineDynamicStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38066     operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT
38067     {
38068       return *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>( this );
38069     }
38070 
38071 
38072 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38073     auto operator<=>( PipelineDynamicStateCreateInfo const& ) const = default;
38074 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38075     bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38076     {
38077       return ( sType == rhs.sType )
38078           && ( pNext == rhs.pNext )
38079           && ( flags == rhs.flags )
38080           && ( dynamicStateCount == rhs.dynamicStateCount )
38081           && ( pDynamicStates == rhs.pDynamicStates );
38082     }
38083 
operator !=VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo38084     bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38085     {
38086       return !operator==( rhs );
38087     }
38088 #endif
38089 
38090 
38091 
38092   public:
38093     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
38094     const void* pNext = {};
38095     VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {};
38096     uint32_t dynamicStateCount = {};
38097     const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates = {};
38098 
38099   };
38100   static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" );
38101   static_assert( std::is_standard_layout<PipelineDynamicStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
38102 
38103   template <>
38104   struct CppType<StructureType, StructureType::ePipelineDynamicStateCreateInfo>
38105   {
38106     using Type = PipelineDynamicStateCreateInfo;
38107   };
38108 
38109   struct GraphicsPipelineCreateInfo
38110   {
38111     static const bool allowDuplicate = false;
38112     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo;
38113 
38114 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38115     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT
38116     : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pInputAssemblyState( pInputAssemblyState_ ), pTessellationState( pTessellationState_ ), pViewportState( pViewportState_ ), pRasterizationState( pRasterizationState_ ), pMultisampleState( pMultisampleState_ ), pDepthStencilState( pDepthStencilState_ ), pColorBlendState( pColorBlendState_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), renderPass( renderPass_ ), subpass( subpass_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
38117     {}
38118 
38119     VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38120 
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38121     GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38122     {
38123       *this = rhs;
38124     }
38125 
38126 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38127     GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} )
38128     : flags( flags_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pInputAssemblyState( pInputAssemblyState_ ), pTessellationState( pTessellationState_ ), pViewportState( pViewportState_ ), pRasterizationState( pRasterizationState_ ), pMultisampleState( pMultisampleState_ ), pDepthStencilState( pDepthStencilState_ ), pColorBlendState( pColorBlendState_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), renderPass( renderPass_ ), subpass( subpass_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
38129     {}
38130 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38131 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38132 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38133     GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38134     {
38135       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const *>( &rhs );
38136       return *this;
38137     }
38138 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38139     GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38140     {
38141       memcpy( static_cast<void *>( this ), &rhs, sizeof( GraphicsPipelineCreateInfo ) );
38142       return *this;
38143     }
38144 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38145     GraphicsPipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38146     {
38147       pNext = pNext_;
38148       return *this;
38149     }
38150 
setFlagsVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38151     GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38152     {
38153       flags = flags_;
38154       return *this;
38155     }
38156 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38157     GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
38158     {
38159       stageCount = stageCount_;
38160       return *this;
38161     }
38162 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38163     GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
38164     {
38165       pStages = pStages_;
38166       return *this;
38167     }
38168 
38169 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38170     GraphicsPipelineCreateInfo & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
38171     {
38172       stageCount = static_cast<uint32_t>( stages_.size() );
38173       pStages = stages_.data();
38174       return *this;
38175     }
38176 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38177 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38178     GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
38179     {
38180       pVertexInputState = pVertexInputState_;
38181       return *this;
38182     }
38183 
setPInputAssemblyStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38184     GraphicsPipelineCreateInfo & setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT
38185     {
38186       pInputAssemblyState = pInputAssemblyState_;
38187       return *this;
38188     }
38189 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38190     GraphicsPipelineCreateInfo & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
38191     {
38192       pTessellationState = pTessellationState_;
38193       return *this;
38194     }
38195 
setPViewportStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38196     GraphicsPipelineCreateInfo & setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ ) VULKAN_HPP_NOEXCEPT
38197     {
38198       pViewportState = pViewportState_;
38199       return *this;
38200     }
38201 
setPRasterizationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38202     GraphicsPipelineCreateInfo & setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ ) VULKAN_HPP_NOEXCEPT
38203     {
38204       pRasterizationState = pRasterizationState_;
38205       return *this;
38206     }
38207 
setPMultisampleStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38208     GraphicsPipelineCreateInfo & setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
38209     {
38210       pMultisampleState = pMultisampleState_;
38211       return *this;
38212     }
38213 
setPDepthStencilStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38214     GraphicsPipelineCreateInfo & setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
38215     {
38216       pDepthStencilState = pDepthStencilState_;
38217       return *this;
38218     }
38219 
setPColorBlendStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38220     GraphicsPipelineCreateInfo & setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
38221     {
38222       pColorBlendState = pColorBlendState_;
38223       return *this;
38224     }
38225 
setPDynamicStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38226     GraphicsPipelineCreateInfo & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT
38227     {
38228       pDynamicState = pDynamicState_;
38229       return *this;
38230     }
38231 
setLayoutVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38232     GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
38233     {
38234       layout = layout_;
38235       return *this;
38236     }
38237 
setRenderPassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38238     GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
38239     {
38240       renderPass = renderPass_;
38241       return *this;
38242     }
38243 
setSubpassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38244     GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
38245     {
38246       subpass = subpass_;
38247       return *this;
38248     }
38249 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38250     GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
38251     {
38252       basePipelineHandle = basePipelineHandle_;
38253       return *this;
38254     }
38255 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38256     GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
38257     {
38258       basePipelineIndex = basePipelineIndex_;
38259       return *this;
38260     }
38261 
38262 
operator VkGraphicsPipelineCreateInfo const&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38263     operator VkGraphicsPipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38264     {
38265       return *reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( this );
38266     }
38267 
operator VkGraphicsPipelineCreateInfo&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38268     operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
38269     {
38270       return *reinterpret_cast<VkGraphicsPipelineCreateInfo*>( this );
38271     }
38272 
38273 
38274 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38275     auto operator<=>( GraphicsPipelineCreateInfo const& ) const = default;
38276 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38277     bool operator==( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38278     {
38279       return ( sType == rhs.sType )
38280           && ( pNext == rhs.pNext )
38281           && ( flags == rhs.flags )
38282           && ( stageCount == rhs.stageCount )
38283           && ( pStages == rhs.pStages )
38284           && ( pVertexInputState == rhs.pVertexInputState )
38285           && ( pInputAssemblyState == rhs.pInputAssemblyState )
38286           && ( pTessellationState == rhs.pTessellationState )
38287           && ( pViewportState == rhs.pViewportState )
38288           && ( pRasterizationState == rhs.pRasterizationState )
38289           && ( pMultisampleState == rhs.pMultisampleState )
38290           && ( pDepthStencilState == rhs.pDepthStencilState )
38291           && ( pColorBlendState == rhs.pColorBlendState )
38292           && ( pDynamicState == rhs.pDynamicState )
38293           && ( layout == rhs.layout )
38294           && ( renderPass == rhs.renderPass )
38295           && ( subpass == rhs.subpass )
38296           && ( basePipelineHandle == rhs.basePipelineHandle )
38297           && ( basePipelineIndex == rhs.basePipelineIndex );
38298     }
38299 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo38300     bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38301     {
38302       return !operator==( rhs );
38303     }
38304 #endif
38305 
38306 
38307 
38308   public:
38309     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
38310     const void* pNext = {};
38311     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
38312     uint32_t stageCount = {};
38313     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
38314     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
38315     const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState = {};
38316     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
38317     const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState = {};
38318     const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState = {};
38319     const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState = {};
38320     const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState = {};
38321     const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState = {};
38322     const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {};
38323     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
38324     VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
38325     uint32_t subpass = {};
38326     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
38327     int32_t basePipelineIndex = {};
38328 
38329   };
38330   static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" );
38331   static_assert( std::is_standard_layout<GraphicsPipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
38332 
38333   template <>
38334   struct CppType<StructureType, StructureType::eGraphicsPipelineCreateInfo>
38335   {
38336     using Type = GraphicsPipelineCreateInfo;
38337   };
38338 
38339   struct ImageCreateInfo
38340   {
38341     static const bool allowDuplicate = false;
38342     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo;
38343 
38344 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo38345     VULKAN_HPP_CONSTEXPR ImageCreateInfo(VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, uint32_t mipLevels_ = {}, uint32_t arrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT
38346     : flags( flags_ ), imageType( imageType_ ), format( format_ ), extent( extent_ ), mipLevels( mipLevels_ ), arrayLayers( arrayLayers_ ), samples( samples_ ), tiling( tiling_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ), initialLayout( initialLayout_ )
38347     {}
38348 
38349     VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38350 
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo38351     ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38352     {
38353       *this = rhs;
38354     }
38355 
38356 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo38357     ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, VULKAN_HPP_NAMESPACE::ImageType imageType_, VULKAN_HPP_NAMESPACE::Format format_, VULKAN_HPP_NAMESPACE::Extent3D extent_, uint32_t mipLevels_, uint32_t arrayLayers_, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_, VULKAN_HPP_NAMESPACE::ImageTiling tiling_, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined )
38358     : flags( flags_ ), imageType( imageType_ ), format( format_ ), extent( extent_ ), mipLevels( mipLevels_ ), arrayLayers( arrayLayers_ ), samples( samples_ ), tiling( tiling_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ), initialLayout( initialLayout_ )
38359     {}
38360 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38361 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38362 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo38363     ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38364     {
38365       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCreateInfo const *>( &rhs );
38366       return *this;
38367     }
38368 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo38369     ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38370     {
38371       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageCreateInfo ) );
38372       return *this;
38373     }
38374 
setPNextVULKAN_HPP_NAMESPACE::ImageCreateInfo38375     ImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38376     {
38377       pNext = pNext_;
38378       return *this;
38379     }
38380 
setFlagsVULKAN_HPP_NAMESPACE::ImageCreateInfo38381     ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38382     {
38383       flags = flags_;
38384       return *this;
38385     }
38386 
setImageTypeVULKAN_HPP_NAMESPACE::ImageCreateInfo38387     ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT
38388     {
38389       imageType = imageType_;
38390       return *this;
38391     }
38392 
setFormatVULKAN_HPP_NAMESPACE::ImageCreateInfo38393     ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
38394     {
38395       format = format_;
38396       return *this;
38397     }
38398 
setExtentVULKAN_HPP_NAMESPACE::ImageCreateInfo38399     ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
38400     {
38401       extent = extent_;
38402       return *this;
38403     }
38404 
setMipLevelsVULKAN_HPP_NAMESPACE::ImageCreateInfo38405     ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT
38406     {
38407       mipLevels = mipLevels_;
38408       return *this;
38409     }
38410 
setArrayLayersVULKAN_HPP_NAMESPACE::ImageCreateInfo38411     ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT
38412     {
38413       arrayLayers = arrayLayers_;
38414       return *this;
38415     }
38416 
setSamplesVULKAN_HPP_NAMESPACE::ImageCreateInfo38417     ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
38418     {
38419       samples = samples_;
38420       return *this;
38421     }
38422 
setTilingVULKAN_HPP_NAMESPACE::ImageCreateInfo38423     ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
38424     {
38425       tiling = tiling_;
38426       return *this;
38427     }
38428 
setUsageVULKAN_HPP_NAMESPACE::ImageCreateInfo38429     ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
38430     {
38431       usage = usage_;
38432       return *this;
38433     }
38434 
setSharingModeVULKAN_HPP_NAMESPACE::ImageCreateInfo38435     ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
38436     {
38437       sharingMode = sharingMode_;
38438       return *this;
38439     }
38440 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::ImageCreateInfo38441     ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
38442     {
38443       queueFamilyIndexCount = queueFamilyIndexCount_;
38444       return *this;
38445     }
38446 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo38447     ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
38448     {
38449       pQueueFamilyIndices = pQueueFamilyIndices_;
38450       return *this;
38451     }
38452 
38453 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo38454     ImageCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
38455     {
38456       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
38457       pQueueFamilyIndices = queueFamilyIndices_.data();
38458       return *this;
38459     }
38460 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38461 
setInitialLayoutVULKAN_HPP_NAMESPACE::ImageCreateInfo38462     ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
38463     {
38464       initialLayout = initialLayout_;
38465       return *this;
38466     }
38467 
38468 
operator VkImageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageCreateInfo38469     operator VkImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38470     {
38471       return *reinterpret_cast<const VkImageCreateInfo*>( this );
38472     }
38473 
operator VkImageCreateInfo&VULKAN_HPP_NAMESPACE::ImageCreateInfo38474     operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT
38475     {
38476       return *reinterpret_cast<VkImageCreateInfo*>( this );
38477     }
38478 
38479 
38480 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38481     auto operator<=>( ImageCreateInfo const& ) const = default;
38482 #else
operator ==VULKAN_HPP_NAMESPACE::ImageCreateInfo38483     bool operator==( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38484     {
38485       return ( sType == rhs.sType )
38486           && ( pNext == rhs.pNext )
38487           && ( flags == rhs.flags )
38488           && ( imageType == rhs.imageType )
38489           && ( format == rhs.format )
38490           && ( extent == rhs.extent )
38491           && ( mipLevels == rhs.mipLevels )
38492           && ( arrayLayers == rhs.arrayLayers )
38493           && ( samples == rhs.samples )
38494           && ( tiling == rhs.tiling )
38495           && ( usage == rhs.usage )
38496           && ( sharingMode == rhs.sharingMode )
38497           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
38498           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
38499           && ( initialLayout == rhs.initialLayout );
38500     }
38501 
operator !=VULKAN_HPP_NAMESPACE::ImageCreateInfo38502     bool operator!=( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38503     {
38504       return !operator==( rhs );
38505     }
38506 #endif
38507 
38508 
38509 
38510   public:
38511     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo;
38512     const void* pNext = {};
38513     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
38514     VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
38515     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
38516     VULKAN_HPP_NAMESPACE::Extent3D extent = {};
38517     uint32_t mipLevels = {};
38518     uint32_t arrayLayers = {};
38519     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
38520     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
38521     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
38522     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
38523     uint32_t queueFamilyIndexCount = {};
38524     const uint32_t* pQueueFamilyIndices = {};
38525     VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
38526 
38527   };
38528   static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" );
38529   static_assert( std::is_standard_layout<ImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
38530 
38531   template <>
38532   struct CppType<StructureType, StructureType::eImageCreateInfo>
38533   {
38534     using Type = ImageCreateInfo;
38535   };
38536 
38537   struct ImageViewCreateInfo
38538   {
38539     static const bool allowDuplicate = false;
38540     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo;
38541 
38542 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38543     VULKAN_HPP_CONSTEXPR ImageViewCreateInfo(VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageViewType viewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}) VULKAN_HPP_NOEXCEPT
38544     : flags( flags_ ), image( image_ ), viewType( viewType_ ), format( format_ ), components( components_ ), subresourceRange( subresourceRange_ )
38545     {}
38546 
38547     VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38548 
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38549     ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38550     {
38551       *this = rhs;
38552     }
38553 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38554 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38555     ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38556     {
38557       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const *>( &rhs );
38558       return *this;
38559     }
38560 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38561     ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
38562     {
38563       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewCreateInfo ) );
38564       return *this;
38565     }
38566 
setPNextVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38567     ImageViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38568     {
38569       pNext = pNext_;
38570       return *this;
38571     }
38572 
setFlagsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38573     ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
38574     {
38575       flags = flags_;
38576       return *this;
38577     }
38578 
setImageVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38579     ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
38580     {
38581       image = image_;
38582       return *this;
38583     }
38584 
setViewTypeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38585     ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT
38586     {
38587       viewType = viewType_;
38588       return *this;
38589     }
38590 
setFormatVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38591     ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
38592     {
38593       format = format_;
38594       return *this;
38595     }
38596 
setComponentsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38597     ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
38598     {
38599       components = components_;
38600       return *this;
38601     }
38602 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38603     ImageViewCreateInfo & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
38604     {
38605       subresourceRange = subresourceRange_;
38606       return *this;
38607     }
38608 
38609 
operator VkImageViewCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38610     operator VkImageViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
38611     {
38612       return *reinterpret_cast<const VkImageViewCreateInfo*>( this );
38613     }
38614 
operator VkImageViewCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38615     operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
38616     {
38617       return *reinterpret_cast<VkImageViewCreateInfo*>( this );
38618     }
38619 
38620 
38621 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38622     auto operator<=>( ImageViewCreateInfo const& ) const = default;
38623 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38624     bool operator==( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38625     {
38626       return ( sType == rhs.sType )
38627           && ( pNext == rhs.pNext )
38628           && ( flags == rhs.flags )
38629           && ( image == rhs.image )
38630           && ( viewType == rhs.viewType )
38631           && ( format == rhs.format )
38632           && ( components == rhs.components )
38633           && ( subresourceRange == rhs.subresourceRange );
38634     }
38635 
operator !=VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38636     bool operator!=( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
38637     {
38638       return !operator==( rhs );
38639     }
38640 #endif
38641 
38642 
38643 
38644   public:
38645     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo;
38646     const void* pNext = {};
38647     VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {};
38648     VULKAN_HPP_NAMESPACE::Image image = {};
38649     VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
38650     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
38651     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
38652     VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
38653 
38654   };
38655   static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" );
38656   static_assert( std::is_standard_layout<ImageViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
38657 
38658   template <>
38659   struct CppType<StructureType, StructureType::eImageViewCreateInfo>
38660   {
38661     using Type = ImageViewCreateInfo;
38662   };
38663 
38664   struct IndirectCommandsLayoutTokenNV
38665   {
38666     static const bool allowDuplicate = false;
38667     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV;
38668 
38669 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38670     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV(VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup, uint32_t stream_ = {}, uint32_t offset_ = {}, uint32_t vertexBindingUnit_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ = {}, uint32_t pushconstantOffset_ = {}, uint32_t pushconstantSize_ = {}, VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ = {}, uint32_t indexTypeCount_ = {}, const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ = {}, const uint32_t* pIndexTypeValues_ = {}) VULKAN_HPP_NOEXCEPT
38671     : tokenType( tokenType_ ), stream( stream_ ), offset( offset_ ), vertexBindingUnit( vertexBindingUnit_ ), vertexDynamicStride( vertexDynamicStride_ ), pushconstantPipelineLayout( pushconstantPipelineLayout_ ), pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ), pushconstantOffset( pushconstantOffset_ ), pushconstantSize( pushconstantSize_ ), indirectStateFlags( indirectStateFlags_ ), indexTypeCount( indexTypeCount_ ), pIndexTypes( pIndexTypes_ ), pIndexTypeValues( pIndexTypeValues_ )
38672     {}
38673 
38674     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38675 
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38676     IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
38677     {
38678       *this = rhs;
38679     }
38680 
38681 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
IndirectCommandsLayoutTokenNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38682     IndirectCommandsLayoutTokenNV( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_, uint32_t stream_, uint32_t offset_, uint32_t vertexBindingUnit_, VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_, VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_, VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_, uint32_t pushconstantOffset_, uint32_t pushconstantSize_, VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ = {} )
38683     : tokenType( tokenType_ ), stream( stream_ ), offset( offset_ ), vertexBindingUnit( vertexBindingUnit_ ), vertexDynamicStride( vertexDynamicStride_ ), pushconstantPipelineLayout( pushconstantPipelineLayout_ ), pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ), pushconstantOffset( pushconstantOffset_ ), pushconstantSize( pushconstantSize_ ), indirectStateFlags( indirectStateFlags_ ), indexTypeCount( static_cast<uint32_t>( indexTypes_.size() ) ), pIndexTypes( indexTypes_.data() ), pIndexTypeValues( indexTypeValues_.data() )
38684     {
38685 #ifdef VULKAN_HPP_NO_EXCEPTIONS
38686       VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() );
38687 #else
38688       if ( indexTypes_.size() != indexTypeValues_.size() )
38689       {
38690         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" );
38691       }
38692 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
38693     }
38694 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38695 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38696 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38697     IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
38698     {
38699       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const *>( &rhs );
38700       return *this;
38701     }
38702 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38703     IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
38704     {
38705       memcpy( static_cast<void *>( this ), &rhs, sizeof( IndirectCommandsLayoutTokenNV ) );
38706       return *this;
38707     }
38708 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38709     IndirectCommandsLayoutTokenNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38710     {
38711       pNext = pNext_;
38712       return *this;
38713     }
38714 
setTokenTypeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38715     IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT
38716     {
38717       tokenType = tokenType_;
38718       return *this;
38719     }
38720 
setStreamVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38721     IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT
38722     {
38723       stream = stream_;
38724       return *this;
38725     }
38726 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38727     IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
38728     {
38729       offset = offset_;
38730       return *this;
38731     }
38732 
setVertexBindingUnitVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38733     IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT
38734     {
38735       vertexBindingUnit = vertexBindingUnit_;
38736       return *this;
38737     }
38738 
setVertexDynamicStrideVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38739     IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT
38740     {
38741       vertexDynamicStride = vertexDynamicStride_;
38742       return *this;
38743     }
38744 
setPushconstantPipelineLayoutVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38745     IndirectCommandsLayoutTokenNV & setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
38746     {
38747       pushconstantPipelineLayout = pushconstantPipelineLayout_;
38748       return *this;
38749     }
38750 
setPushconstantShaderStageFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38751     IndirectCommandsLayoutTokenNV & setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
38752     {
38753       pushconstantShaderStageFlags = pushconstantShaderStageFlags_;
38754       return *this;
38755     }
38756 
setPushconstantOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38757     IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT
38758     {
38759       pushconstantOffset = pushconstantOffset_;
38760       return *this;
38761     }
38762 
setPushconstantSizeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38763     IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT
38764     {
38765       pushconstantSize = pushconstantSize_;
38766       return *this;
38767     }
38768 
setIndirectStateFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38769     IndirectCommandsLayoutTokenNV & setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
38770     {
38771       indirectStateFlags = indirectStateFlags_;
38772       return *this;
38773     }
38774 
setIndexTypeCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38775     IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT
38776     {
38777       indexTypeCount = indexTypeCount_;
38778       return *this;
38779     }
38780 
setPIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38781     IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ ) VULKAN_HPP_NOEXCEPT
38782     {
38783       pIndexTypes = pIndexTypes_;
38784       return *this;
38785     }
38786 
38787 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setIndexTypesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38788     IndirectCommandsLayoutTokenNV & setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_ ) VULKAN_HPP_NOEXCEPT
38789     {
38790       indexTypeCount = static_cast<uint32_t>( indexTypes_.size() );
38791       pIndexTypes = indexTypes_.data();
38792       return *this;
38793     }
38794 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38795 
setPIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38796     IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t* pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT
38797     {
38798       pIndexTypeValues = pIndexTypeValues_;
38799       return *this;
38800     }
38801 
38802 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setIndexTypeValuesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38803     IndirectCommandsLayoutTokenNV & setIndexTypeValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT
38804     {
38805       indexTypeCount = static_cast<uint32_t>( indexTypeValues_.size() );
38806       pIndexTypeValues = indexTypeValues_.data();
38807       return *this;
38808     }
38809 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38810 
38811 
operator VkIndirectCommandsLayoutTokenNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38812     operator VkIndirectCommandsLayoutTokenNV const&() const VULKAN_HPP_NOEXCEPT
38813     {
38814       return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNV*>( this );
38815     }
38816 
operator VkIndirectCommandsLayoutTokenNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38817     operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
38818     {
38819       return *reinterpret_cast<VkIndirectCommandsLayoutTokenNV*>( this );
38820     }
38821 
38822 
38823 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38824     auto operator<=>( IndirectCommandsLayoutTokenNV const& ) const = default;
38825 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38826     bool operator==( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38827     {
38828       return ( sType == rhs.sType )
38829           && ( pNext == rhs.pNext )
38830           && ( tokenType == rhs.tokenType )
38831           && ( stream == rhs.stream )
38832           && ( offset == rhs.offset )
38833           && ( vertexBindingUnit == rhs.vertexBindingUnit )
38834           && ( vertexDynamicStride == rhs.vertexDynamicStride )
38835           && ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout )
38836           && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags )
38837           && ( pushconstantOffset == rhs.pushconstantOffset )
38838           && ( pushconstantSize == rhs.pushconstantSize )
38839           && ( indirectStateFlags == rhs.indirectStateFlags )
38840           && ( indexTypeCount == rhs.indexTypeCount )
38841           && ( pIndexTypes == rhs.pIndexTypes )
38842           && ( pIndexTypeValues == rhs.pIndexTypeValues );
38843     }
38844 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV38845     bool operator!=( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38846     {
38847       return !operator==( rhs );
38848     }
38849 #endif
38850 
38851 
38852 
38853   public:
38854     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV;
38855     const void* pNext = {};
38856     VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup;
38857     uint32_t stream = {};
38858     uint32_t offset = {};
38859     uint32_t vertexBindingUnit = {};
38860     VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {};
38861     VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {};
38862     VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {};
38863     uint32_t pushconstantOffset = {};
38864     uint32_t pushconstantSize = {};
38865     VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {};
38866     uint32_t indexTypeCount = {};
38867     const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes = {};
38868     const uint32_t* pIndexTypeValues = {};
38869 
38870   };
38871   static_assert( sizeof( IndirectCommandsLayoutTokenNV ) == sizeof( VkIndirectCommandsLayoutTokenNV ), "struct and wrapper have different size!" );
38872   static_assert( std::is_standard_layout<IndirectCommandsLayoutTokenNV>::value, "struct wrapper is not a standard layout!" );
38873 
38874   template <>
38875   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutTokenNV>
38876   {
38877     using Type = IndirectCommandsLayoutTokenNV;
38878   };
38879 
38880   struct IndirectCommandsLayoutCreateInfoNV
38881   {
38882     static const bool allowDuplicate = false;
38883     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
38884 
38885 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38886     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t tokenCount_ = {}, const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ = {}, uint32_t streamCount_ = {}, const uint32_t* pStreamStrides_ = {}) VULKAN_HPP_NOEXCEPT
38887     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( tokenCount_ ), pTokens( pTokens_ ), streamCount( streamCount_ ), pStreamStrides( pStreamStrides_ )
38888     {}
38889 
38890     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
38891 
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38892     IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38893     {
38894       *this = rhs;
38895     }
38896 
38897 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
IndirectCommandsLayoutCreateInfoNVVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38898     IndirectCommandsLayoutCreateInfoNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ = {} )
38899     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( static_cast<uint32_t>( tokens_.size() ) ), pTokens( tokens_.data() ), streamCount( static_cast<uint32_t>( streamStrides_.size() ) ), pStreamStrides( streamStrides_.data() )
38900     {}
38901 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38902 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
38903 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38904     IndirectCommandsLayoutCreateInfoNV & operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38905     {
38906       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const *>( &rhs );
38907       return *this;
38908     }
38909 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38910     IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
38911     {
38912       memcpy( static_cast<void *>( this ), &rhs, sizeof( IndirectCommandsLayoutCreateInfoNV ) );
38913       return *this;
38914     }
38915 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38916     IndirectCommandsLayoutCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
38917     {
38918       pNext = pNext_;
38919       return *this;
38920     }
38921 
setFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38922     IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
38923     {
38924       flags = flags_;
38925       return *this;
38926     }
38927 
setPipelineBindPointVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38928     IndirectCommandsLayoutCreateInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
38929     {
38930       pipelineBindPoint = pipelineBindPoint_;
38931       return *this;
38932     }
38933 
setTokenCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38934     IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT
38935     {
38936       tokenCount = tokenCount_;
38937       return *this;
38938     }
38939 
setPTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38940     IndirectCommandsLayoutCreateInfoNV & setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ ) VULKAN_HPP_NOEXCEPT
38941     {
38942       pTokens = pTokens_;
38943       return *this;
38944     }
38945 
38946 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38947     IndirectCommandsLayoutCreateInfoNV & setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_ ) VULKAN_HPP_NOEXCEPT
38948     {
38949       tokenCount = static_cast<uint32_t>( tokens_.size() );
38950       pTokens = tokens_.data();
38951       return *this;
38952     }
38953 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38954 
setStreamCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38955     IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
38956     {
38957       streamCount = streamCount_;
38958       return *this;
38959     }
38960 
setPStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38961     IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t* pStreamStrides_ ) VULKAN_HPP_NOEXCEPT
38962     {
38963       pStreamStrides = pStreamStrides_;
38964       return *this;
38965     }
38966 
38967 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStreamStridesVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38968     IndirectCommandsLayoutCreateInfoNV & setStreamStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ ) VULKAN_HPP_NOEXCEPT
38969     {
38970       streamCount = static_cast<uint32_t>( streamStrides_.size() );
38971       pStreamStrides = streamStrides_.data();
38972       return *this;
38973     }
38974 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
38975 
38976 
operator VkIndirectCommandsLayoutCreateInfoNV const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38977     operator VkIndirectCommandsLayoutCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
38978     {
38979       return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV*>( this );
38980     }
38981 
operator VkIndirectCommandsLayoutCreateInfoNV&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38982     operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
38983     {
38984       return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNV*>( this );
38985     }
38986 
38987 
38988 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
38989     auto operator<=>( IndirectCommandsLayoutCreateInfoNV const& ) const = default;
38990 #else
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV38991     bool operator==( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
38992     {
38993       return ( sType == rhs.sType )
38994           && ( pNext == rhs.pNext )
38995           && ( flags == rhs.flags )
38996           && ( pipelineBindPoint == rhs.pipelineBindPoint )
38997           && ( tokenCount == rhs.tokenCount )
38998           && ( pTokens == rhs.pTokens )
38999           && ( streamCount == rhs.streamCount )
39000           && ( pStreamStrides == rhs.pStreamStrides );
39001     }
39002 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV39003     bool operator!=( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
39004     {
39005       return !operator==( rhs );
39006     }
39007 #endif
39008 
39009 
39010 
39011   public:
39012     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
39013     const void* pNext = {};
39014     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {};
39015     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
39016     uint32_t tokenCount = {};
39017     const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens = {};
39018     uint32_t streamCount = {};
39019     const uint32_t* pStreamStrides = {};
39020 
39021   };
39022   static_assert( sizeof( IndirectCommandsLayoutCreateInfoNV ) == sizeof( VkIndirectCommandsLayoutCreateInfoNV ), "struct and wrapper have different size!" );
39023   static_assert( std::is_standard_layout<IndirectCommandsLayoutCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
39024 
39025   template <>
39026   struct CppType<StructureType, StructureType::eIndirectCommandsLayoutCreateInfoNV>
39027   {
39028     using Type = IndirectCommandsLayoutCreateInfoNV;
39029   };
39030 
39031   struct PipelineCacheCreateInfo
39032   {
39033     static const bool allowDuplicate = false;
39034     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo;
39035 
39036 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39037     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT
39038     : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
39039     {}
39040 
39041     VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39042 
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39043     PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39044     {
39045       *this = rhs;
39046     }
39047 
39048 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39049     template <typename T>
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39050     PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ )
39051     : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
39052     {}
39053 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39054 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39055 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39056     PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39057     {
39058       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const *>( &rhs );
39059       return *this;
39060     }
39061 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39062     PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39063     {
39064       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCacheCreateInfo ) );
39065       return *this;
39066     }
39067 
setPNextVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39068     PipelineCacheCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39069     {
39070       pNext = pNext_;
39071       return *this;
39072     }
39073 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39074     PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39075     {
39076       flags = flags_;
39077       return *this;
39078     }
39079 
setInitialDataSizeVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39080     PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
39081     {
39082       initialDataSize = initialDataSize_;
39083       return *this;
39084     }
39085 
setPInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39086     PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
39087     {
39088       pInitialData = pInitialData_;
39089       return *this;
39090     }
39091 
39092 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39093     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39094     PipelineCacheCreateInfo & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
39095     {
39096       initialDataSize = initialData_.size() * sizeof(T);
39097       pInitialData = initialData_.data();
39098       return *this;
39099     }
39100 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39101 
39102 
operator VkPipelineCacheCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39103     operator VkPipelineCacheCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39104     {
39105       return *reinterpret_cast<const VkPipelineCacheCreateInfo*>( this );
39106     }
39107 
operator VkPipelineCacheCreateInfo&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39108     operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
39109     {
39110       return *reinterpret_cast<VkPipelineCacheCreateInfo*>( this );
39111     }
39112 
39113 
39114 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39115     auto operator<=>( PipelineCacheCreateInfo const& ) const = default;
39116 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39117     bool operator==( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39118     {
39119       return ( sType == rhs.sType )
39120           && ( pNext == rhs.pNext )
39121           && ( flags == rhs.flags )
39122           && ( initialDataSize == rhs.initialDataSize )
39123           && ( pInitialData == rhs.pInitialData );
39124     }
39125 
operator !=VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo39126     bool operator!=( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39127     {
39128       return !operator==( rhs );
39129     }
39130 #endif
39131 
39132 
39133 
39134   public:
39135     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo;
39136     const void* pNext = {};
39137     VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {};
39138     size_t initialDataSize = {};
39139     const void* pInitialData = {};
39140 
39141   };
39142   static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" );
39143   static_assert( std::is_standard_layout<PipelineCacheCreateInfo>::value, "struct wrapper is not a standard layout!" );
39144 
39145   template <>
39146   struct CppType<StructureType, StructureType::ePipelineCacheCreateInfo>
39147   {
39148     using Type = PipelineCacheCreateInfo;
39149   };
39150 
39151   struct PushConstantRange
39152   {
39153 
39154 
39155 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange39156     VULKAN_HPP_CONSTEXPR PushConstantRange(VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {}) VULKAN_HPP_NOEXCEPT
39157     : stageFlags( stageFlags_ ), offset( offset_ ), size( size_ )
39158     {}
39159 
39160     VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39161 
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange39162     PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
39163     {
39164       *this = rhs;
39165     }
39166 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39167 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange39168     PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
39169     {
39170       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>( &rhs );
39171       return *this;
39172     }
39173 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange39174     PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
39175     {
39176       memcpy( static_cast<void *>( this ), &rhs, sizeof( PushConstantRange ) );
39177       return *this;
39178     }
39179 
setStageFlagsVULKAN_HPP_NAMESPACE::PushConstantRange39180     PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
39181     {
39182       stageFlags = stageFlags_;
39183       return *this;
39184     }
39185 
setOffsetVULKAN_HPP_NAMESPACE::PushConstantRange39186     PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
39187     {
39188       offset = offset_;
39189       return *this;
39190     }
39191 
setSizeVULKAN_HPP_NAMESPACE::PushConstantRange39192     PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
39193     {
39194       size = size_;
39195       return *this;
39196     }
39197 
39198 
operator VkPushConstantRange const&VULKAN_HPP_NAMESPACE::PushConstantRange39199     operator VkPushConstantRange const&() const VULKAN_HPP_NOEXCEPT
39200     {
39201       return *reinterpret_cast<const VkPushConstantRange*>( this );
39202     }
39203 
operator VkPushConstantRange&VULKAN_HPP_NAMESPACE::PushConstantRange39204     operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
39205     {
39206       return *reinterpret_cast<VkPushConstantRange*>( this );
39207     }
39208 
39209 
39210 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39211     auto operator<=>( PushConstantRange const& ) const = default;
39212 #else
operator ==VULKAN_HPP_NAMESPACE::PushConstantRange39213     bool operator==( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
39214     {
39215       return ( stageFlags == rhs.stageFlags )
39216           && ( offset == rhs.offset )
39217           && ( size == rhs.size );
39218     }
39219 
operator !=VULKAN_HPP_NAMESPACE::PushConstantRange39220     bool operator!=( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT
39221     {
39222       return !operator==( rhs );
39223     }
39224 #endif
39225 
39226 
39227 
39228   public:
39229     VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
39230     uint32_t offset = {};
39231     uint32_t size = {};
39232 
39233   };
39234   static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" );
39235   static_assert( std::is_standard_layout<PushConstantRange>::value, "struct wrapper is not a standard layout!" );
39236 
39237   struct PipelineLayoutCreateInfo
39238   {
39239     static const bool allowDuplicate = false;
39240     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo;
39241 
39242 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39243     VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo(VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ = {}, uint32_t setLayoutCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}, uint32_t pushConstantRangeCount_ = {}, const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ = {}) VULKAN_HPP_NOEXCEPT
39244     : flags( flags_ ), setLayoutCount( setLayoutCount_ ), pSetLayouts( pSetLayouts_ ), pushConstantRangeCount( pushConstantRangeCount_ ), pPushConstantRanges( pPushConstantRanges_ )
39245     {}
39246 
39247     VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39248 
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39249     PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39250     {
39251       *this = rhs;
39252     }
39253 
39254 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39255     PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ = {} )
39256     : flags( flags_ ), setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ), pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) ), pPushConstantRanges( pushConstantRanges_.data() )
39257     {}
39258 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39259 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39260 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39261     PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39262     {
39263       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const *>( &rhs );
39264       return *this;
39265     }
39266 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39267     PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39268     {
39269       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineLayoutCreateInfo ) );
39270       return *this;
39271     }
39272 
setPNextVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39273     PipelineLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39274     {
39275       pNext = pNext_;
39276       return *this;
39277     }
39278 
setFlagsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39279     PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39280     {
39281       flags = flags_;
39282       return *this;
39283     }
39284 
setSetLayoutCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39285     PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
39286     {
39287       setLayoutCount = setLayoutCount_;
39288       return *this;
39289     }
39290 
setPSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39291     PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
39292     {
39293       pSetLayouts = pSetLayouts_;
39294       return *this;
39295     }
39296 
39297 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39298     PipelineLayoutCreateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
39299     {
39300       setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
39301       pSetLayouts = setLayouts_.data();
39302       return *this;
39303     }
39304 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39305 
setPushConstantRangeCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39306     PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
39307     {
39308       pushConstantRangeCount = pushConstantRangeCount_;
39309       return *this;
39310     }
39311 
setPPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39312     PipelineLayoutCreateInfo & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
39313     {
39314       pPushConstantRanges = pPushConstantRanges_;
39315       return *this;
39316     }
39317 
39318 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39319     PipelineLayoutCreateInfo & setPushConstantRanges( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
39320     {
39321       pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
39322       pPushConstantRanges = pushConstantRanges_.data();
39323       return *this;
39324     }
39325 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39326 
39327 
operator VkPipelineLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39328     operator VkPipelineLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39329     {
39330       return *reinterpret_cast<const VkPipelineLayoutCreateInfo*>( this );
39331     }
39332 
operator VkPipelineLayoutCreateInfo&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39333     operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
39334     {
39335       return *reinterpret_cast<VkPipelineLayoutCreateInfo*>( this );
39336     }
39337 
39338 
39339 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39340     auto operator<=>( PipelineLayoutCreateInfo const& ) const = default;
39341 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39342     bool operator==( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39343     {
39344       return ( sType == rhs.sType )
39345           && ( pNext == rhs.pNext )
39346           && ( flags == rhs.flags )
39347           && ( setLayoutCount == rhs.setLayoutCount )
39348           && ( pSetLayouts == rhs.pSetLayouts )
39349           && ( pushConstantRangeCount == rhs.pushConstantRangeCount )
39350           && ( pPushConstantRanges == rhs.pPushConstantRanges );
39351     }
39352 
operator !=VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo39353     bool operator!=( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39354     {
39355       return !operator==( rhs );
39356     }
39357 #endif
39358 
39359 
39360 
39361   public:
39362     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo;
39363     const void* pNext = {};
39364     VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {};
39365     uint32_t setLayoutCount = {};
39366     const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {};
39367     uint32_t pushConstantRangeCount = {};
39368     const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges = {};
39369 
39370   };
39371   static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" );
39372   static_assert( std::is_standard_layout<PipelineLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
39373 
39374   template <>
39375   struct CppType<StructureType, StructureType::ePipelineLayoutCreateInfo>
39376   {
39377     using Type = PipelineLayoutCreateInfo;
39378   };
39379 
39380   struct PrivateDataSlotCreateInfoEXT
39381   {
39382     static const bool allowDuplicate = false;
39383     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfoEXT;
39384 
39385 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39386     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
39387     : flags( flags_ )
39388     {}
39389 
39390     VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39391 
PrivateDataSlotCreateInfoEXTVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39392     PrivateDataSlotCreateInfoEXT( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39393     {
39394       *this = rhs;
39395     }
39396 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39397 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39398     PrivateDataSlotCreateInfoEXT & operator=( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39399     {
39400       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT const *>( &rhs );
39401       return *this;
39402     }
39403 
operator =VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39404     PrivateDataSlotCreateInfoEXT & operator=( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
39405     {
39406       memcpy( static_cast<void *>( this ), &rhs, sizeof( PrivateDataSlotCreateInfoEXT ) );
39407       return *this;
39408     }
39409 
setPNextVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39410     PrivateDataSlotCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39411     {
39412       pNext = pNext_;
39413       return *this;
39414     }
39415 
setFlagsVULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39416     PrivateDataSlotCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
39417     {
39418       flags = flags_;
39419       return *this;
39420     }
39421 
39422 
operator VkPrivateDataSlotCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39423     operator VkPrivateDataSlotCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
39424     {
39425       return *reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT*>( this );
39426     }
39427 
operator VkPrivateDataSlotCreateInfoEXT&VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39428     operator VkPrivateDataSlotCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
39429     {
39430       return *reinterpret_cast<VkPrivateDataSlotCreateInfoEXT*>( this );
39431     }
39432 
39433 
39434 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39435     auto operator<=>( PrivateDataSlotCreateInfoEXT const& ) const = default;
39436 #else
operator ==VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39437     bool operator==( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
39438     {
39439       return ( sType == rhs.sType )
39440           && ( pNext == rhs.pNext )
39441           && ( flags == rhs.flags );
39442     }
39443 
operator !=VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT39444     bool operator!=( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
39445     {
39446       return !operator==( rhs );
39447     }
39448 #endif
39449 
39450 
39451 
39452   public:
39453     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfoEXT;
39454     const void* pNext = {};
39455     VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags = {};
39456 
39457   };
39458   static_assert( sizeof( PrivateDataSlotCreateInfoEXT ) == sizeof( VkPrivateDataSlotCreateInfoEXT ), "struct and wrapper have different size!" );
39459   static_assert( std::is_standard_layout<PrivateDataSlotCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
39460 
39461   template <>
39462   struct CppType<StructureType, StructureType::ePrivateDataSlotCreateInfoEXT>
39463   {
39464     using Type = PrivateDataSlotCreateInfoEXT;
39465   };
39466 
39467   class PrivateDataSlotEXT
39468   {
39469   public:
39470     using CType = VkPrivateDataSlotEXT;
39471 
39472     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT;
39473     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
39474 
39475   public:
PrivateDataSlotEXT()39476     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT() VULKAN_HPP_NOEXCEPT
39477       : m_privateDataSlotEXT(VK_NULL_HANDLE)
39478     {}
39479 
PrivateDataSlotEXT(std::nullptr_t)39480     VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
39481       : m_privateDataSlotEXT(VK_NULL_HANDLE)
39482     {}
39483 
PrivateDataSlotEXT(VkPrivateDataSlotEXT privateDataSlotEXT)39484     VULKAN_HPP_TYPESAFE_EXPLICIT PrivateDataSlotEXT( VkPrivateDataSlotEXT privateDataSlotEXT ) VULKAN_HPP_NOEXCEPT
39485       : m_privateDataSlotEXT( privateDataSlotEXT )
39486     {}
39487 
39488 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPrivateDataSlotEXT privateDataSlotEXT)39489     PrivateDataSlotEXT & operator=(VkPrivateDataSlotEXT privateDataSlotEXT) VULKAN_HPP_NOEXCEPT
39490     {
39491       m_privateDataSlotEXT = privateDataSlotEXT;
39492       return *this;
39493     }
39494 #endif
39495 
operator =(std::nullptr_t)39496     PrivateDataSlotEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
39497     {
39498       m_privateDataSlotEXT = VK_NULL_HANDLE;
39499       return *this;
39500     }
39501 
39502 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39503     auto operator<=>( PrivateDataSlotEXT const& ) const = default;
39504 #else
operator ==(PrivateDataSlotEXT const & rhs) const39505     bool operator==( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39506     {
39507       return m_privateDataSlotEXT == rhs.m_privateDataSlotEXT;
39508     }
39509 
operator !=(PrivateDataSlotEXT const & rhs) const39510     bool operator!=(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39511     {
39512       return m_privateDataSlotEXT != rhs.m_privateDataSlotEXT;
39513     }
39514 
operator <(PrivateDataSlotEXT const & rhs) const39515     bool operator<(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
39516     {
39517       return m_privateDataSlotEXT < rhs.m_privateDataSlotEXT;
39518     }
39519 #endif
39520 
operator VkPrivateDataSlotEXT() const39521     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPrivateDataSlotEXT() const VULKAN_HPP_NOEXCEPT
39522     {
39523       return m_privateDataSlotEXT;
39524     }
39525 
operator bool() const39526     explicit operator bool() const VULKAN_HPP_NOEXCEPT
39527     {
39528       return m_privateDataSlotEXT != VK_NULL_HANDLE;
39529     }
39530 
operator !() const39531     bool operator!() const VULKAN_HPP_NOEXCEPT
39532     {
39533       return m_privateDataSlotEXT == VK_NULL_HANDLE;
39534     }
39535 
39536   private:
39537     VkPrivateDataSlotEXT m_privateDataSlotEXT;
39538   };
39539   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT ) == sizeof( VkPrivateDataSlotEXT ), "handle and wrapper have different size!" );
39540 
39541   template <>
39542   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePrivateDataSlotEXT>
39543   {
39544     using type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT;
39545   };
39546 
39547   template <>
39548   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT>
39549   {
39550     using Type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT;
39551   };
39552 
39553 
39554 
39555   template <>
39556   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
39557   {
39558     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
39559   };
39560 
39561   struct QueryPoolCreateInfo
39562   {
39563     static const bool allowDuplicate = false;
39564     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo;
39565 
39566 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39567     VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo(VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::QueryType queryType_ = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion, uint32_t queryCount_ = {}, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {}) VULKAN_HPP_NOEXCEPT
39568     : flags( flags_ ), queryType( queryType_ ), queryCount( queryCount_ ), pipelineStatistics( pipelineStatistics_ )
39569     {}
39570 
39571     VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39572 
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39573     QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39574     {
39575       *this = rhs;
39576     }
39577 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39578 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39579     QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39580     {
39581       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const *>( &rhs );
39582       return *this;
39583     }
39584 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39585     QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
39586     {
39587       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueryPoolCreateInfo ) );
39588       return *this;
39589     }
39590 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39591     QueryPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39592     {
39593       pNext = pNext_;
39594       return *this;
39595     }
39596 
setFlagsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39597     QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
39598     {
39599       flags = flags_;
39600       return *this;
39601     }
39602 
setQueryTypeVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39603     QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT
39604     {
39605       queryType = queryType_;
39606       return *this;
39607     }
39608 
setQueryCountVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39609     QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT
39610     {
39611       queryCount = queryCount_;
39612       return *this;
39613     }
39614 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39615     QueryPoolCreateInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
39616     {
39617       pipelineStatistics = pipelineStatistics_;
39618       return *this;
39619     }
39620 
39621 
operator VkQueryPoolCreateInfo const&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39622     operator VkQueryPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT
39623     {
39624       return *reinterpret_cast<const VkQueryPoolCreateInfo*>( this );
39625     }
39626 
operator VkQueryPoolCreateInfo&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39627     operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
39628     {
39629       return *reinterpret_cast<VkQueryPoolCreateInfo*>( this );
39630     }
39631 
39632 
39633 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39634     auto operator<=>( QueryPoolCreateInfo const& ) const = default;
39635 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39636     bool operator==( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39637     {
39638       return ( sType == rhs.sType )
39639           && ( pNext == rhs.pNext )
39640           && ( flags == rhs.flags )
39641           && ( queryType == rhs.queryType )
39642           && ( queryCount == rhs.queryCount )
39643           && ( pipelineStatistics == rhs.pipelineStatistics );
39644     }
39645 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo39646     bool operator!=( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
39647     {
39648       return !operator==( rhs );
39649     }
39650 #endif
39651 
39652 
39653 
39654   public:
39655     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo;
39656     const void* pNext = {};
39657     VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {};
39658     VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion;
39659     uint32_t queryCount = {};
39660     VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
39661 
39662   };
39663   static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" );
39664   static_assert( std::is_standard_layout<QueryPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
39665 
39666   template <>
39667   struct CppType<StructureType, StructureType::eQueryPoolCreateInfo>
39668   {
39669     using Type = QueryPoolCreateInfo;
39670   };
39671 
39672 #ifdef VK_ENABLE_BETA_EXTENSIONS
39673   struct RayTracingShaderGroupCreateInfoKHR
39674   {
39675     static const bool allowDuplicate = false;
39676     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
39677 
39678 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39679     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR(VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, uint32_t generalShader_ = {}, uint32_t closestHitShader_ = {}, uint32_t anyHitShader_ = {}, uint32_t intersectionShader_ = {}, const void* pShaderGroupCaptureReplayHandle_ = {}) VULKAN_HPP_NOEXCEPT
39680     : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ ), pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ )
39681     {}
39682 
39683     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39684 
RayTracingShaderGroupCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39685     RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39686     {
39687       *this = rhs;
39688     }
39689 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39690 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39691     RayTracingShaderGroupCreateInfoKHR & operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39692     {
39693       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const *>( &rhs );
39694       return *this;
39695     }
39696 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39697     RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39698     {
39699       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingShaderGroupCreateInfoKHR ) );
39700       return *this;
39701     }
39702 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39703     RayTracingShaderGroupCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39704     {
39705       pNext = pNext_;
39706       return *this;
39707     }
39708 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39709     RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
39710     {
39711       type = type_;
39712       return *this;
39713     }
39714 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39715     RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
39716     {
39717       generalShader = generalShader_;
39718       return *this;
39719     }
39720 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39721     RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
39722     {
39723       closestHitShader = closestHitShader_;
39724       return *this;
39725     }
39726 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39727     RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
39728     {
39729       anyHitShader = anyHitShader_;
39730       return *this;
39731     }
39732 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39733     RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
39734     {
39735       intersectionShader = intersectionShader_;
39736       return *this;
39737     }
39738 
setPShaderGroupCaptureReplayHandleVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39739     RayTracingShaderGroupCreateInfoKHR & setPShaderGroupCaptureReplayHandle( const void* pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
39740     {
39741       pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
39742       return *this;
39743     }
39744 
39745 
operator VkRayTracingShaderGroupCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39746     operator VkRayTracingShaderGroupCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39747     {
39748       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoKHR*>( this );
39749     }
39750 
operator VkRayTracingShaderGroupCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39751     operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39752     {
39753       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoKHR*>( this );
39754     }
39755 
39756 
39757 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39758     auto operator<=>( RayTracingShaderGroupCreateInfoKHR const& ) const = default;
39759 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39760     bool operator==( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39761     {
39762       return ( sType == rhs.sType )
39763           && ( pNext == rhs.pNext )
39764           && ( type == rhs.type )
39765           && ( generalShader == rhs.generalShader )
39766           && ( closestHitShader == rhs.closestHitShader )
39767           && ( anyHitShader == rhs.anyHitShader )
39768           && ( intersectionShader == rhs.intersectionShader )
39769           && ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle );
39770     }
39771 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR39772     bool operator!=( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39773     {
39774       return !operator==( rhs );
39775     }
39776 #endif
39777 
39778 
39779 
39780   public:
39781     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
39782     const void* pNext = {};
39783     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
39784     uint32_t generalShader = {};
39785     uint32_t closestHitShader = {};
39786     uint32_t anyHitShader = {};
39787     uint32_t intersectionShader = {};
39788     const void* pShaderGroupCaptureReplayHandle = {};
39789 
39790   };
39791   static_assert( sizeof( RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ), "struct and wrapper have different size!" );
39792   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
39793 
39794   template <>
39795   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoKHR>
39796   {
39797     using Type = RayTracingShaderGroupCreateInfoKHR;
39798   };
39799 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
39800 
39801 #ifdef VK_ENABLE_BETA_EXTENSIONS
39802   struct PipelineLibraryCreateInfoKHR
39803   {
39804     static const bool allowDuplicate = false;
39805     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR;
39806 
39807 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39808     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR(uint32_t libraryCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ = {}) VULKAN_HPP_NOEXCEPT
39809     : libraryCount( libraryCount_ ), pLibraries( pLibraries_ )
39810     {}
39811 
39812     VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39813 
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39814     PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39815     {
39816       *this = rhs;
39817     }
39818 
39819 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineLibraryCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39820     PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ )
39821     : libraryCount( static_cast<uint32_t>( libraries_.size() ) ), pLibraries( libraries_.data() )
39822     {}
39823 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39824 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39825 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39826     PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39827     {
39828       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>( &rhs );
39829       return *this;
39830     }
39831 
operator =VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39832     PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39833     {
39834       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineLibraryCreateInfoKHR ) );
39835       return *this;
39836     }
39837 
setPNextVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39838     PipelineLibraryCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39839     {
39840       pNext = pNext_;
39841       return *this;
39842     }
39843 
setLibraryCountVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39844     PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
39845     {
39846       libraryCount = libraryCount_;
39847       return *this;
39848     }
39849 
setPLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39850     PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ ) VULKAN_HPP_NOEXCEPT
39851     {
39852       pLibraries = pLibraries_;
39853       return *this;
39854     }
39855 
39856 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setLibrariesVULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39857     PipelineLibraryCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ ) VULKAN_HPP_NOEXCEPT
39858     {
39859       libraryCount = static_cast<uint32_t>( libraries_.size() );
39860       pLibraries = libraries_.data();
39861       return *this;
39862     }
39863 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
39864 
39865 
operator VkPipelineLibraryCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39866     operator VkPipelineLibraryCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39867     {
39868       return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR*>( this );
39869     }
39870 
operator VkPipelineLibraryCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39871     operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39872     {
39873       return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR*>( this );
39874     }
39875 
39876 
39877 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39878     auto operator<=>( PipelineLibraryCreateInfoKHR const& ) const = default;
39879 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39880     bool operator==( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39881     {
39882       return ( sType == rhs.sType )
39883           && ( pNext == rhs.pNext )
39884           && ( libraryCount == rhs.libraryCount )
39885           && ( pLibraries == rhs.pLibraries );
39886     }
39887 
operator !=VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR39888     bool operator!=( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39889     {
39890       return !operator==( rhs );
39891     }
39892 #endif
39893 
39894 
39895 
39896   public:
39897     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR;
39898     const void* pNext = {};
39899     uint32_t libraryCount = {};
39900     const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries = {};
39901 
39902   };
39903   static_assert( sizeof( PipelineLibraryCreateInfoKHR ) == sizeof( VkPipelineLibraryCreateInfoKHR ), "struct and wrapper have different size!" );
39904   static_assert( std::is_standard_layout<PipelineLibraryCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
39905 
39906   template <>
39907   struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
39908   {
39909     using Type = PipelineLibraryCreateInfoKHR;
39910   };
39911 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
39912 
39913 #ifdef VK_ENABLE_BETA_EXTENSIONS
39914   struct RayTracingPipelineInterfaceCreateInfoKHR
39915   {
39916     static const bool allowDuplicate = false;
39917     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
39918 
39919 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39920     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR(uint32_t maxPayloadSize_ = {}, uint32_t maxAttributeSize_ = {}, uint32_t maxCallableSize_ = {}) VULKAN_HPP_NOEXCEPT
39921     : maxPayloadSize( maxPayloadSize_ ), maxAttributeSize( maxAttributeSize_ ), maxCallableSize( maxCallableSize_ )
39922     {}
39923 
39924     VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
39925 
RayTracingPipelineInterfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39926     RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39927     {
39928       *this = rhs;
39929     }
39930 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
39931 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39932     RayTracingPipelineInterfaceCreateInfoKHR & operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39933     {
39934       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs );
39935       return *this;
39936     }
39937 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39938     RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
39939     {
39940       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) );
39941       return *this;
39942     }
39943 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39944     RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
39945     {
39946       pNext = pNext_;
39947       return *this;
39948     }
39949 
setMaxPayloadSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39950     RayTracingPipelineInterfaceCreateInfoKHR & setMaxPayloadSize( uint32_t maxPayloadSize_ ) VULKAN_HPP_NOEXCEPT
39951     {
39952       maxPayloadSize = maxPayloadSize_;
39953       return *this;
39954     }
39955 
setMaxAttributeSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39956     RayTracingPipelineInterfaceCreateInfoKHR & setMaxAttributeSize( uint32_t maxAttributeSize_ ) VULKAN_HPP_NOEXCEPT
39957     {
39958       maxAttributeSize = maxAttributeSize_;
39959       return *this;
39960     }
39961 
setMaxCallableSizeVULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39962     RayTracingPipelineInterfaceCreateInfoKHR & setMaxCallableSize( uint32_t maxCallableSize_ ) VULKAN_HPP_NOEXCEPT
39963     {
39964       maxCallableSize = maxCallableSize_;
39965       return *this;
39966     }
39967 
39968 
operator VkRayTracingPipelineInterfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39969     operator VkRayTracingPipelineInterfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
39970     {
39971       return *reinterpret_cast<const VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
39972     }
39973 
operator VkRayTracingPipelineInterfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39974     operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
39975     {
39976       return *reinterpret_cast<VkRayTracingPipelineInterfaceCreateInfoKHR*>( this );
39977     }
39978 
39979 
39980 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
39981     auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const& ) const = default;
39982 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39983     bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39984     {
39985       return ( sType == rhs.sType )
39986           && ( pNext == rhs.pNext )
39987           && ( maxPayloadSize == rhs.maxPayloadSize )
39988           && ( maxAttributeSize == rhs.maxAttributeSize )
39989           && ( maxCallableSize == rhs.maxCallableSize );
39990     }
39991 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR39992     bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
39993     {
39994       return !operator==( rhs );
39995     }
39996 #endif
39997 
39998 
39999 
40000   public:
40001     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
40002     const void* pNext = {};
40003     uint32_t maxPayloadSize = {};
40004     uint32_t maxAttributeSize = {};
40005     uint32_t maxCallableSize = {};
40006 
40007   };
40008   static_assert( sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) == sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ), "struct and wrapper have different size!" );
40009   static_assert( std::is_standard_layout<RayTracingPipelineInterfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
40010 
40011   template <>
40012   struct CppType<StructureType, StructureType::eRayTracingPipelineInterfaceCreateInfoKHR>
40013   {
40014     using Type = RayTracingPipelineInterfaceCreateInfoKHR;
40015   };
40016 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
40017 
40018 #ifdef VK_ENABLE_BETA_EXTENSIONS
40019   struct RayTracingPipelineCreateInfoKHR
40020   {
40021     static const bool allowDuplicate = false;
40022     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR;
40023 
40024 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40025     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR libraries_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT
40026     : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), libraries( libraries_ ), pLibraryInterface( pLibraryInterface_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
40027     {}
40028 
40029     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40030 
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40031     RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40032     {
40033       *this = rhs;
40034     }
40035 
40036 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RayTracingPipelineCreateInfoKHRVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40037     RayTracingPipelineCreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR libraries_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} )
40038     : flags( flags_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), maxRecursionDepth( maxRecursionDepth_ ), libraries( libraries_ ), pLibraryInterface( pLibraryInterface_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
40039     {}
40040 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40041 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40042 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40043     RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40044     {
40045       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const *>( &rhs );
40046       return *this;
40047     }
40048 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40049     RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
40050     {
40051       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingPipelineCreateInfoKHR ) );
40052       return *this;
40053     }
40054 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40055     RayTracingPipelineCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40056     {
40057       pNext = pNext_;
40058       return *this;
40059     }
40060 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40061     RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40062     {
40063       flags = flags_;
40064       return *this;
40065     }
40066 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40067     RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
40068     {
40069       stageCount = stageCount_;
40070       return *this;
40071     }
40072 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40073     RayTracingPipelineCreateInfoKHR & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
40074     {
40075       pStages = pStages_;
40076       return *this;
40077     }
40078 
40079 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40080     RayTracingPipelineCreateInfoKHR & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
40081     {
40082       stageCount = static_cast<uint32_t>( stages_.size() );
40083       pStages = stages_.data();
40084       return *this;
40085     }
40086 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40087 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40088     RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
40089     {
40090       groupCount = groupCount_;
40091       return *this;
40092     }
40093 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40094     RayTracingPipelineCreateInfoKHR & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ ) VULKAN_HPP_NOEXCEPT
40095     {
40096       pGroups = pGroups_;
40097       return *this;
40098     }
40099 
40100 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40101     RayTracingPipelineCreateInfoKHR & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ ) VULKAN_HPP_NOEXCEPT
40102     {
40103       groupCount = static_cast<uint32_t>( groups_.size() );
40104       pGroups = groups_.data();
40105       return *this;
40106     }
40107 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40108 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40109     RayTracingPipelineCreateInfoKHR & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
40110     {
40111       maxRecursionDepth = maxRecursionDepth_;
40112       return *this;
40113     }
40114 
setLibrariesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40115     RayTracingPipelineCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const & libraries_ ) VULKAN_HPP_NOEXCEPT
40116     {
40117       libraries = libraries_;
40118       return *this;
40119     }
40120 
setPLibraryInterfaceVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40121     RayTracingPipelineCreateInfoKHR & setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT
40122     {
40123       pLibraryInterface = pLibraryInterface_;
40124       return *this;
40125     }
40126 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40127     RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
40128     {
40129       layout = layout_;
40130       return *this;
40131     }
40132 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40133     RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
40134     {
40135       basePipelineHandle = basePipelineHandle_;
40136       return *this;
40137     }
40138 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40139     RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
40140     {
40141       basePipelineIndex = basePipelineIndex_;
40142       return *this;
40143     }
40144 
40145 
operator VkRayTracingPipelineCreateInfoKHR const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40146     operator VkRayTracingPipelineCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
40147     {
40148       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR*>( this );
40149     }
40150 
operator VkRayTracingPipelineCreateInfoKHR&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40151     operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
40152     {
40153       return *reinterpret_cast<VkRayTracingPipelineCreateInfoKHR*>( this );
40154     }
40155 
40156 
40157 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40158     auto operator<=>( RayTracingPipelineCreateInfoKHR const& ) const = default;
40159 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40160     bool operator==( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
40161     {
40162       return ( sType == rhs.sType )
40163           && ( pNext == rhs.pNext )
40164           && ( flags == rhs.flags )
40165           && ( stageCount == rhs.stageCount )
40166           && ( pStages == rhs.pStages )
40167           && ( groupCount == rhs.groupCount )
40168           && ( pGroups == rhs.pGroups )
40169           && ( maxRecursionDepth == rhs.maxRecursionDepth )
40170           && ( libraries == rhs.libraries )
40171           && ( pLibraryInterface == rhs.pLibraryInterface )
40172           && ( layout == rhs.layout )
40173           && ( basePipelineHandle == rhs.basePipelineHandle )
40174           && ( basePipelineIndex == rhs.basePipelineIndex );
40175     }
40176 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR40177     bool operator!=( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
40178     {
40179       return !operator==( rhs );
40180     }
40181 #endif
40182 
40183 
40184 
40185   public:
40186     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR;
40187     const void* pNext = {};
40188     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
40189     uint32_t stageCount = {};
40190     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
40191     uint32_t groupCount = {};
40192     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups = {};
40193     uint32_t maxRecursionDepth = {};
40194     VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR libraries = {};
40195     const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface = {};
40196     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
40197     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
40198     int32_t basePipelineIndex = {};
40199 
40200   };
40201   static_assert( sizeof( RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ), "struct and wrapper have different size!" );
40202   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
40203 
40204   template <>
40205   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoKHR>
40206   {
40207     using Type = RayTracingPipelineCreateInfoKHR;
40208   };
40209 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
40210 
40211   struct RayTracingShaderGroupCreateInfoNV
40212   {
40213     static const bool allowDuplicate = false;
40214     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV;
40215 
40216 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40217     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV(VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, uint32_t generalShader_ = {}, uint32_t closestHitShader_ = {}, uint32_t anyHitShader_ = {}, uint32_t intersectionShader_ = {}) VULKAN_HPP_NOEXCEPT
40218     : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ )
40219     {}
40220 
40221     VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40222 
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40223     RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40224     {
40225       *this = rhs;
40226     }
40227 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40228 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40229     RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40230     {
40231       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const *>( &rhs );
40232       return *this;
40233     }
40234 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40235     RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40236     {
40237       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingShaderGroupCreateInfoNV ) );
40238       return *this;
40239     }
40240 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40241     RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40242     {
40243       pNext = pNext_;
40244       return *this;
40245     }
40246 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40247     RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
40248     {
40249       type = type_;
40250       return *this;
40251     }
40252 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40253     RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
40254     {
40255       generalShader = generalShader_;
40256       return *this;
40257     }
40258 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40259     RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
40260     {
40261       closestHitShader = closestHitShader_;
40262       return *this;
40263     }
40264 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40265     RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
40266     {
40267       anyHitShader = anyHitShader_;
40268       return *this;
40269     }
40270 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40271     RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
40272     {
40273       intersectionShader = intersectionShader_;
40274       return *this;
40275     }
40276 
40277 
operator VkRayTracingShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40278     operator VkRayTracingShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
40279     {
40280       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV*>( this );
40281     }
40282 
operator VkRayTracingShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40283     operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
40284     {
40285       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>( this );
40286     }
40287 
40288 
40289 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40290     auto operator<=>( RayTracingShaderGroupCreateInfoNV const& ) const = default;
40291 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40292     bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40293     {
40294       return ( sType == rhs.sType )
40295           && ( pNext == rhs.pNext )
40296           && ( type == rhs.type )
40297           && ( generalShader == rhs.generalShader )
40298           && ( closestHitShader == rhs.closestHitShader )
40299           && ( anyHitShader == rhs.anyHitShader )
40300           && ( intersectionShader == rhs.intersectionShader );
40301     }
40302 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV40303     bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40304     {
40305       return !operator==( rhs );
40306     }
40307 #endif
40308 
40309 
40310 
40311   public:
40312     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
40313     const void* pNext = {};
40314     VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
40315     uint32_t generalShader = {};
40316     uint32_t closestHitShader = {};
40317     uint32_t anyHitShader = {};
40318     uint32_t intersectionShader = {};
40319 
40320   };
40321   static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
40322   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
40323 
40324   template <>
40325   struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoNV>
40326   {
40327     using Type = RayTracingShaderGroupCreateInfoNV;
40328   };
40329 
40330   struct RayTracingPipelineCreateInfoNV
40331   {
40332     static const bool allowDuplicate = false;
40333     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV;
40334 
40335 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40336     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT
40337     : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
40338     {}
40339 
40340     VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40341 
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40342     RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40343     {
40344       *this = rhs;
40345     }
40346 
40347 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40348     RayTracingPipelineCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} )
40349     : flags( flags_ ), stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ )
40350     {}
40351 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40352 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40353 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40354     RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40355     {
40356       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const *>( &rhs );
40357       return *this;
40358     }
40359 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40360     RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
40361     {
40362       memcpy( static_cast<void *>( this ), &rhs, sizeof( RayTracingPipelineCreateInfoNV ) );
40363       return *this;
40364     }
40365 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40366     RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40367     {
40368       pNext = pNext_;
40369       return *this;
40370     }
40371 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40372     RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40373     {
40374       flags = flags_;
40375       return *this;
40376     }
40377 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40378     RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
40379     {
40380       stageCount = stageCount_;
40381       return *this;
40382     }
40383 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40384     RayTracingPipelineCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
40385     {
40386       pStages = pStages_;
40387       return *this;
40388     }
40389 
40390 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40391     RayTracingPipelineCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
40392     {
40393       stageCount = static_cast<uint32_t>( stages_.size() );
40394       pStages = stages_.data();
40395       return *this;
40396     }
40397 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40398 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40399     RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
40400     {
40401       groupCount = groupCount_;
40402       return *this;
40403     }
40404 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40405     RayTracingPipelineCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
40406     {
40407       pGroups = pGroups_;
40408       return *this;
40409     }
40410 
40411 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40412     RayTracingPipelineCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
40413     {
40414       groupCount = static_cast<uint32_t>( groups_.size() );
40415       pGroups = groups_.data();
40416       return *this;
40417     }
40418 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40419 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40420     RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
40421     {
40422       maxRecursionDepth = maxRecursionDepth_;
40423       return *this;
40424     }
40425 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40426     RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
40427     {
40428       layout = layout_;
40429       return *this;
40430     }
40431 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40432     RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
40433     {
40434       basePipelineHandle = basePipelineHandle_;
40435       return *this;
40436     }
40437 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40438     RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
40439     {
40440       basePipelineIndex = basePipelineIndex_;
40441       return *this;
40442     }
40443 
40444 
operator VkRayTracingPipelineCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40445     operator VkRayTracingPipelineCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
40446     {
40447       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( this );
40448     }
40449 
operator VkRayTracingPipelineCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40450     operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
40451     {
40452       return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>( this );
40453     }
40454 
40455 
40456 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40457     auto operator<=>( RayTracingPipelineCreateInfoNV const& ) const = default;
40458 #else
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40459     bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40460     {
40461       return ( sType == rhs.sType )
40462           && ( pNext == rhs.pNext )
40463           && ( flags == rhs.flags )
40464           && ( stageCount == rhs.stageCount )
40465           && ( pStages == rhs.pStages )
40466           && ( groupCount == rhs.groupCount )
40467           && ( pGroups == rhs.pGroups )
40468           && ( maxRecursionDepth == rhs.maxRecursionDepth )
40469           && ( layout == rhs.layout )
40470           && ( basePipelineHandle == rhs.basePipelineHandle )
40471           && ( basePipelineIndex == rhs.basePipelineIndex );
40472     }
40473 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV40474     bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
40475     {
40476       return !operator==( rhs );
40477     }
40478 #endif
40479 
40480 
40481 
40482   public:
40483     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
40484     const void* pNext = {};
40485     VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
40486     uint32_t stageCount = {};
40487     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
40488     uint32_t groupCount = {};
40489     const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups = {};
40490     uint32_t maxRecursionDepth = {};
40491     VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
40492     VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
40493     int32_t basePipelineIndex = {};
40494 
40495   };
40496   static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" );
40497   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
40498 
40499   template <>
40500   struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoNV>
40501   {
40502     using Type = RayTracingPipelineCreateInfoNV;
40503   };
40504 
40505   struct SubpassDescription
40506   {
40507 
40508 
40509 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription40510     VULKAN_HPP_CONSTEXPR SubpassDescription(VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t inputAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ = {}, uint32_t preserveAttachmentCount_ = {}, const uint32_t* pPreserveAttachments_ = {}) VULKAN_HPP_NOEXCEPT
40511     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
40512     {}
40513 
40514     VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40515 
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription40516     SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40517     {
40518       *this = rhs;
40519     }
40520 
40521 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription40522     SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ = {} )
40523     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( static_cast<uint32_t>( inputAttachments_.size() ) ), pInputAttachments( inputAttachments_.data() ), colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) ), pColorAttachments( colorAttachments_.data() ), pResolveAttachments( resolveAttachments_.data() ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( static_cast<uint32_t>( preserveAttachments_.size() ) ), pPreserveAttachments( preserveAttachments_.data() )
40524     {
40525 #ifdef VULKAN_HPP_NO_EXCEPTIONS
40526       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
40527 #else
40528       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
40529       {
40530         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
40531       }
40532 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
40533     }
40534 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40535 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40536 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription40537     SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40538     {
40539       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription const *>( &rhs );
40540       return *this;
40541     }
40542 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription40543     SubpassDescription & operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
40544     {
40545       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDescription ) );
40546       return *this;
40547     }
40548 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription40549     SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
40550     {
40551       flags = flags_;
40552       return *this;
40553     }
40554 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription40555     SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
40556     {
40557       pipelineBindPoint = pipelineBindPoint_;
40558       return *this;
40559     }
40560 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription40561     SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40562     {
40563       inputAttachmentCount = inputAttachmentCount_;
40564       return *this;
40565     }
40566 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40567     SubpassDescription & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
40568     {
40569       pInputAttachments = pInputAttachments_;
40570       return *this;
40571     }
40572 
40573 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40574     SubpassDescription & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
40575     {
40576       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
40577       pInputAttachments = inputAttachments_.data();
40578       return *this;
40579     }
40580 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40581 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription40582     SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40583     {
40584       colorAttachmentCount = colorAttachmentCount_;
40585       return *this;
40586     }
40587 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40588     SubpassDescription & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
40589     {
40590       pColorAttachments = pColorAttachments_;
40591       return *this;
40592     }
40593 
40594 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40595     SubpassDescription & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
40596     {
40597       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
40598       pColorAttachments = colorAttachments_.data();
40599       return *this;
40600     }
40601 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40602 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40603     SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40604     {
40605       pResolveAttachments = pResolveAttachments_;
40606       return *this;
40607     }
40608 
40609 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40610     SubpassDescription & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
40611     {
40612       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
40613       pResolveAttachments = resolveAttachments_.data();
40614       return *this;
40615     }
40616 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40617 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription40618     SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
40619     {
40620       pDepthStencilAttachment = pDepthStencilAttachment_;
40621       return *this;
40622     }
40623 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription40624     SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
40625     {
40626       preserveAttachmentCount = preserveAttachmentCount_;
40627       return *this;
40628     }
40629 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40630     SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40631     {
40632       pPreserveAttachments = pPreserveAttachments_;
40633       return *this;
40634     }
40635 
40636 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription40637     SubpassDescription & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
40638     {
40639       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
40640       pPreserveAttachments = preserveAttachments_.data();
40641       return *this;
40642     }
40643 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40644 
40645 
operator VkSubpassDescription const&VULKAN_HPP_NAMESPACE::SubpassDescription40646     operator VkSubpassDescription const&() const VULKAN_HPP_NOEXCEPT
40647     {
40648       return *reinterpret_cast<const VkSubpassDescription*>( this );
40649     }
40650 
operator VkSubpassDescription&VULKAN_HPP_NAMESPACE::SubpassDescription40651     operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
40652     {
40653       return *reinterpret_cast<VkSubpassDescription*>( this );
40654     }
40655 
40656 
40657 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40658     auto operator<=>( SubpassDescription const& ) const = default;
40659 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription40660     bool operator==( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40661     {
40662       return ( flags == rhs.flags )
40663           && ( pipelineBindPoint == rhs.pipelineBindPoint )
40664           && ( inputAttachmentCount == rhs.inputAttachmentCount )
40665           && ( pInputAttachments == rhs.pInputAttachments )
40666           && ( colorAttachmentCount == rhs.colorAttachmentCount )
40667           && ( pColorAttachments == rhs.pColorAttachments )
40668           && ( pResolveAttachments == rhs.pResolveAttachments )
40669           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
40670           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
40671           && ( pPreserveAttachments == rhs.pPreserveAttachments );
40672     }
40673 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription40674     bool operator!=( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT
40675     {
40676       return !operator==( rhs );
40677     }
40678 #endif
40679 
40680 
40681 
40682   public:
40683     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
40684     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
40685     uint32_t inputAttachmentCount = {};
40686     const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments = {};
40687     uint32_t colorAttachmentCount = {};
40688     const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments = {};
40689     const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments = {};
40690     const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment = {};
40691     uint32_t preserveAttachmentCount = {};
40692     const uint32_t* pPreserveAttachments = {};
40693 
40694   };
40695   static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" );
40696   static_assert( std::is_standard_layout<SubpassDescription>::value, "struct wrapper is not a standard layout!" );
40697 
40698   struct SubpassDependency
40699   {
40700 
40701 
40702 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency40703     VULKAN_HPP_CONSTEXPR SubpassDependency(uint32_t srcSubpass_ = {}, uint32_t dstSubpass_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}) VULKAN_HPP_NOEXCEPT
40704     : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ )
40705     {}
40706 
40707     VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40708 
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency40709     SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
40710     {
40711       *this = rhs;
40712     }
40713 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40714 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency40715     SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
40716     {
40717       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency const *>( &rhs );
40718       return *this;
40719     }
40720 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency40721     SubpassDependency & operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
40722     {
40723       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDependency ) );
40724       return *this;
40725     }
40726 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency40727     SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
40728     {
40729       srcSubpass = srcSubpass_;
40730       return *this;
40731     }
40732 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency40733     SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
40734     {
40735       dstSubpass = dstSubpass_;
40736       return *this;
40737     }
40738 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency40739     SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
40740     {
40741       srcStageMask = srcStageMask_;
40742       return *this;
40743     }
40744 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency40745     SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
40746     {
40747       dstStageMask = dstStageMask_;
40748       return *this;
40749     }
40750 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency40751     SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
40752     {
40753       srcAccessMask = srcAccessMask_;
40754       return *this;
40755     }
40756 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency40757     SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
40758     {
40759       dstAccessMask = dstAccessMask_;
40760       return *this;
40761     }
40762 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency40763     SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
40764     {
40765       dependencyFlags = dependencyFlags_;
40766       return *this;
40767     }
40768 
40769 
operator VkSubpassDependency const&VULKAN_HPP_NAMESPACE::SubpassDependency40770     operator VkSubpassDependency const&() const VULKAN_HPP_NOEXCEPT
40771     {
40772       return *reinterpret_cast<const VkSubpassDependency*>( this );
40773     }
40774 
operator VkSubpassDependency&VULKAN_HPP_NAMESPACE::SubpassDependency40775     operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
40776     {
40777       return *reinterpret_cast<VkSubpassDependency*>( this );
40778     }
40779 
40780 
40781 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40782     auto operator<=>( SubpassDependency const& ) const = default;
40783 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency40784     bool operator==( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
40785     {
40786       return ( srcSubpass == rhs.srcSubpass )
40787           && ( dstSubpass == rhs.dstSubpass )
40788           && ( srcStageMask == rhs.srcStageMask )
40789           && ( dstStageMask == rhs.dstStageMask )
40790           && ( srcAccessMask == rhs.srcAccessMask )
40791           && ( dstAccessMask == rhs.dstAccessMask )
40792           && ( dependencyFlags == rhs.dependencyFlags );
40793     }
40794 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency40795     bool operator!=( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT
40796     {
40797       return !operator==( rhs );
40798     }
40799 #endif
40800 
40801 
40802 
40803   public:
40804     uint32_t srcSubpass = {};
40805     uint32_t dstSubpass = {};
40806     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
40807     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
40808     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
40809     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
40810     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
40811 
40812   };
40813   static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" );
40814   static_assert( std::is_standard_layout<SubpassDependency>::value, "struct wrapper is not a standard layout!" );
40815 
40816   struct RenderPassCreateInfo
40817   {
40818     static const bool allowDuplicate = false;
40819     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo;
40820 
40821 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40822     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo(VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ = {}, uint32_t subpassCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ = {}, uint32_t dependencyCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ = {}) VULKAN_HPP_NOEXCEPT
40823     : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ )
40824     {}
40825 
40826     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40827 
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40828     RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40829     {
40830       *this = rhs;
40831     }
40832 
40833 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40834     RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ = {} )
40835     : flags( flags_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), subpassCount( static_cast<uint32_t>( subpasses_.size() ) ), pSubpasses( subpasses_.data() ), dependencyCount( static_cast<uint32_t>( dependencies_.size() ) ), pDependencies( dependencies_.data() )
40836     {}
40837 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40838 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
40839 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40840     RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40841     {
40842       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const *>( &rhs );
40843       return *this;
40844     }
40845 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40846     RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
40847     {
40848       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassCreateInfo ) );
40849       return *this;
40850     }
40851 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40852     RenderPassCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
40853     {
40854       pNext = pNext_;
40855       return *this;
40856     }
40857 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40858     RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
40859     {
40860       flags = flags_;
40861       return *this;
40862     }
40863 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40864     RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
40865     {
40866       attachmentCount = attachmentCount_;
40867       return *this;
40868     }
40869 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40870     RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ ) VULKAN_HPP_NOEXCEPT
40871     {
40872       pAttachments = pAttachments_;
40873       return *this;
40874     }
40875 
40876 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40877     RenderPassCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_ ) VULKAN_HPP_NOEXCEPT
40878     {
40879       attachmentCount = static_cast<uint32_t>( attachments_.size() );
40880       pAttachments = attachments_.data();
40881       return *this;
40882     }
40883 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40884 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40885     RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
40886     {
40887       subpassCount = subpassCount_;
40888       return *this;
40889     }
40890 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40891     RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
40892     {
40893       pSubpasses = pSubpasses_;
40894       return *this;
40895     }
40896 
40897 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40898     RenderPassCreateInfo & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
40899     {
40900       subpassCount = static_cast<uint32_t>( subpasses_.size() );
40901       pSubpasses = subpasses_.data();
40902       return *this;
40903     }
40904 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40905 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40906     RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
40907     {
40908       dependencyCount = dependencyCount_;
40909       return *this;
40910     }
40911 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40912     RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ ) VULKAN_HPP_NOEXCEPT
40913     {
40914       pDependencies = pDependencies_;
40915       return *this;
40916     }
40917 
40918 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo40919     RenderPassCreateInfo & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
40920     {
40921       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
40922       pDependencies = dependencies_.data();
40923       return *this;
40924     }
40925 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
40926 
40927 
operator VkRenderPassCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40928     operator VkRenderPassCreateInfo const&() const VULKAN_HPP_NOEXCEPT
40929     {
40930       return *reinterpret_cast<const VkRenderPassCreateInfo*>( this );
40931     }
40932 
operator VkRenderPassCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40933     operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
40934     {
40935       return *reinterpret_cast<VkRenderPassCreateInfo*>( this );
40936     }
40937 
40938 
40939 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
40940     auto operator<=>( RenderPassCreateInfo const& ) const = default;
40941 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40942     bool operator==( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40943     {
40944       return ( sType == rhs.sType )
40945           && ( pNext == rhs.pNext )
40946           && ( flags == rhs.flags )
40947           && ( attachmentCount == rhs.attachmentCount )
40948           && ( pAttachments == rhs.pAttachments )
40949           && ( subpassCount == rhs.subpassCount )
40950           && ( pSubpasses == rhs.pSubpasses )
40951           && ( dependencyCount == rhs.dependencyCount )
40952           && ( pDependencies == rhs.pDependencies );
40953     }
40954 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo40955     bool operator!=( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
40956     {
40957       return !operator==( rhs );
40958     }
40959 #endif
40960 
40961 
40962 
40963   public:
40964     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo;
40965     const void* pNext = {};
40966     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
40967     uint32_t attachmentCount = {};
40968     const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments = {};
40969     uint32_t subpassCount = {};
40970     const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses = {};
40971     uint32_t dependencyCount = {};
40972     const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies = {};
40973 
40974   };
40975   static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" );
40976   static_assert( std::is_standard_layout<RenderPassCreateInfo>::value, "struct wrapper is not a standard layout!" );
40977 
40978   template <>
40979   struct CppType<StructureType, StructureType::eRenderPassCreateInfo>
40980   {
40981     using Type = RenderPassCreateInfo;
40982   };
40983 
40984   struct SubpassDescription2
40985   {
40986     static const bool allowDuplicate = false;
40987     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2;
40988 
40989 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription240990     VULKAN_HPP_CONSTEXPR SubpassDescription2(VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t viewMask_ = {}, uint32_t inputAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ = {}, uint32_t preserveAttachmentCount_ = {}, const uint32_t* pPreserveAttachments_ = {}) VULKAN_HPP_NOEXCEPT
40991     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ )
40992     {}
40993 
40994     VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
40995 
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription240996     SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
40997     {
40998       *this = rhs;
40999     }
41000 
41001 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubpassDescription2VULKAN_HPP_NAMESPACE::SubpassDescription241002     SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, uint32_t viewMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ = {} )
41003     : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( static_cast<uint32_t>( inputAttachments_.size() ) ), pInputAttachments( inputAttachments_.data() ), colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) ), pColorAttachments( colorAttachments_.data() ), pResolveAttachments( resolveAttachments_.data() ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( static_cast<uint32_t>( preserveAttachments_.size() ) ), pPreserveAttachments( preserveAttachments_.data() )
41004     {
41005 #ifdef VULKAN_HPP_NO_EXCEPTIONS
41006       VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
41007 #else
41008       if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
41009       {
41010         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
41011       }
41012 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
41013     }
41014 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41015 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41016 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription241017     SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
41018     {
41019       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription2 const *>( &rhs );
41020       return *this;
41021     }
41022 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription241023     SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
41024     {
41025       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDescription2 ) );
41026       return *this;
41027     }
41028 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescription241029     SubpassDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41030     {
41031       pNext = pNext_;
41032       return *this;
41033     }
41034 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription241035     SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
41036     {
41037       flags = flags_;
41038       return *this;
41039     }
41040 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription241041     SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
41042     {
41043       pipelineBindPoint = pipelineBindPoint_;
41044       return *this;
41045     }
41046 
setViewMaskVULKAN_HPP_NAMESPACE::SubpassDescription241047     SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
41048     {
41049       viewMask = viewMask_;
41050       return *this;
41051     }
41052 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription241053     SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
41054     {
41055       inputAttachmentCount = inputAttachmentCount_;
41056       return *this;
41057     }
41058 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241059     SubpassDescription2 & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
41060     {
41061       pInputAttachments = pInputAttachments_;
41062       return *this;
41063     }
41064 
41065 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241066     SubpassDescription2 & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
41067     {
41068       inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
41069       pInputAttachments = inputAttachments_.data();
41070       return *this;
41071     }
41072 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41073 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription241074     SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
41075     {
41076       colorAttachmentCount = colorAttachmentCount_;
41077       return *this;
41078     }
41079 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241080     SubpassDescription2 & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
41081     {
41082       pColorAttachments = pColorAttachments_;
41083       return *this;
41084     }
41085 
41086 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241087     SubpassDescription2 & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
41088     {
41089       colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
41090       pColorAttachments = colorAttachments_.data();
41091       return *this;
41092     }
41093 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41094 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241095     SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
41096     {
41097       pResolveAttachments = pResolveAttachments_;
41098       return *this;
41099     }
41100 
41101 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241102     SubpassDescription2 & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
41103     {
41104       colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
41105       pResolveAttachments = resolveAttachments_.data();
41106       return *this;
41107     }
41108 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41109 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription241110     SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
41111     {
41112       pDepthStencilAttachment = pDepthStencilAttachment_;
41113       return *this;
41114     }
41115 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription241116     SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
41117     {
41118       preserveAttachmentCount = preserveAttachmentCount_;
41119       return *this;
41120     }
41121 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241122     SubpassDescription2 & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
41123     {
41124       pPreserveAttachments = pPreserveAttachments_;
41125       return *this;
41126     }
41127 
41128 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription241129     SubpassDescription2 & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
41130     {
41131       preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
41132       pPreserveAttachments = preserveAttachments_.data();
41133       return *this;
41134     }
41135 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41136 
41137 
operator VkSubpassDescription2 const&VULKAN_HPP_NAMESPACE::SubpassDescription241138     operator VkSubpassDescription2 const&() const VULKAN_HPP_NOEXCEPT
41139     {
41140       return *reinterpret_cast<const VkSubpassDescription2*>( this );
41141     }
41142 
operator VkSubpassDescription2&VULKAN_HPP_NAMESPACE::SubpassDescription241143     operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
41144     {
41145       return *reinterpret_cast<VkSubpassDescription2*>( this );
41146     }
41147 
41148 
41149 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41150     auto operator<=>( SubpassDescription2 const& ) const = default;
41151 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription241152     bool operator==( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41153     {
41154       return ( sType == rhs.sType )
41155           && ( pNext == rhs.pNext )
41156           && ( flags == rhs.flags )
41157           && ( pipelineBindPoint == rhs.pipelineBindPoint )
41158           && ( viewMask == rhs.viewMask )
41159           && ( inputAttachmentCount == rhs.inputAttachmentCount )
41160           && ( pInputAttachments == rhs.pInputAttachments )
41161           && ( colorAttachmentCount == rhs.colorAttachmentCount )
41162           && ( pColorAttachments == rhs.pColorAttachments )
41163           && ( pResolveAttachments == rhs.pResolveAttachments )
41164           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
41165           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
41166           && ( pPreserveAttachments == rhs.pPreserveAttachments );
41167     }
41168 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription241169     bool operator!=( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41170     {
41171       return !operator==( rhs );
41172     }
41173 #endif
41174 
41175 
41176 
41177   public:
41178     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2;
41179     const void* pNext = {};
41180     VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
41181     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
41182     uint32_t viewMask = {};
41183     uint32_t inputAttachmentCount = {};
41184     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments = {};
41185     uint32_t colorAttachmentCount = {};
41186     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments = {};
41187     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments = {};
41188     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment = {};
41189     uint32_t preserveAttachmentCount = {};
41190     const uint32_t* pPreserveAttachments = {};
41191 
41192   };
41193   static_assert( sizeof( SubpassDescription2 ) == sizeof( VkSubpassDescription2 ), "struct and wrapper have different size!" );
41194   static_assert( std::is_standard_layout<SubpassDescription2>::value, "struct wrapper is not a standard layout!" );
41195 
41196   template <>
41197   struct CppType<StructureType, StructureType::eSubpassDescription2>
41198   {
41199     using Type = SubpassDescription2;
41200   };
41201   using SubpassDescription2KHR = SubpassDescription2;
41202 
41203   struct SubpassDependency2
41204   {
41205     static const bool allowDuplicate = false;
41206     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2;
41207 
41208 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency241209     VULKAN_HPP_CONSTEXPR SubpassDependency2(uint32_t srcSubpass_ = {}, uint32_t dstSubpass_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, int32_t viewOffset_ = {}) VULKAN_HPP_NOEXCEPT
41210     : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ ), viewOffset( viewOffset_ )
41211     {}
41212 
41213     VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41214 
SubpassDependency2VULKAN_HPP_NAMESPACE::SubpassDependency241215     SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
41216     {
41217       *this = rhs;
41218     }
41219 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41220 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency241221     SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
41222     {
41223       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency2 const *>( &rhs );
41224       return *this;
41225     }
41226 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency241227     SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
41228     {
41229       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDependency2 ) );
41230       return *this;
41231     }
41232 
setPNextVULKAN_HPP_NAMESPACE::SubpassDependency241233     SubpassDependency2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41234     {
41235       pNext = pNext_;
41236       return *this;
41237     }
41238 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency241239     SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
41240     {
41241       srcSubpass = srcSubpass_;
41242       return *this;
41243     }
41244 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency241245     SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
41246     {
41247       dstSubpass = dstSubpass_;
41248       return *this;
41249     }
41250 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency241251     SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
41252     {
41253       srcStageMask = srcStageMask_;
41254       return *this;
41255     }
41256 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency241257     SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
41258     {
41259       dstStageMask = dstStageMask_;
41260       return *this;
41261     }
41262 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency241263     SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
41264     {
41265       srcAccessMask = srcAccessMask_;
41266       return *this;
41267     }
41268 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency241269     SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
41270     {
41271       dstAccessMask = dstAccessMask_;
41272       return *this;
41273     }
41274 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency241275     SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
41276     {
41277       dependencyFlags = dependencyFlags_;
41278       return *this;
41279     }
41280 
setViewOffsetVULKAN_HPP_NAMESPACE::SubpassDependency241281     SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT
41282     {
41283       viewOffset = viewOffset_;
41284       return *this;
41285     }
41286 
41287 
operator VkSubpassDependency2 const&VULKAN_HPP_NAMESPACE::SubpassDependency241288     operator VkSubpassDependency2 const&() const VULKAN_HPP_NOEXCEPT
41289     {
41290       return *reinterpret_cast<const VkSubpassDependency2*>( this );
41291     }
41292 
operator VkSubpassDependency2&VULKAN_HPP_NAMESPACE::SubpassDependency241293     operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
41294     {
41295       return *reinterpret_cast<VkSubpassDependency2*>( this );
41296     }
41297 
41298 
41299 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41300     auto operator<=>( SubpassDependency2 const& ) const = default;
41301 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency241302     bool operator==( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41303     {
41304       return ( sType == rhs.sType )
41305           && ( pNext == rhs.pNext )
41306           && ( srcSubpass == rhs.srcSubpass )
41307           && ( dstSubpass == rhs.dstSubpass )
41308           && ( srcStageMask == rhs.srcStageMask )
41309           && ( dstStageMask == rhs.dstStageMask )
41310           && ( srcAccessMask == rhs.srcAccessMask )
41311           && ( dstAccessMask == rhs.dstAccessMask )
41312           && ( dependencyFlags == rhs.dependencyFlags )
41313           && ( viewOffset == rhs.viewOffset );
41314     }
41315 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency241316     bool operator!=( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41317     {
41318       return !operator==( rhs );
41319     }
41320 #endif
41321 
41322 
41323 
41324   public:
41325     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2;
41326     const void* pNext = {};
41327     uint32_t srcSubpass = {};
41328     uint32_t dstSubpass = {};
41329     VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
41330     VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
41331     VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
41332     VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
41333     VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
41334     int32_t viewOffset = {};
41335 
41336   };
41337   static_assert( sizeof( SubpassDependency2 ) == sizeof( VkSubpassDependency2 ), "struct and wrapper have different size!" );
41338   static_assert( std::is_standard_layout<SubpassDependency2>::value, "struct wrapper is not a standard layout!" );
41339 
41340   template <>
41341   struct CppType<StructureType, StructureType::eSubpassDependency2>
41342   {
41343     using Type = SubpassDependency2;
41344   };
41345   using SubpassDependency2KHR = SubpassDependency2;
41346 
41347   struct RenderPassCreateInfo2
41348   {
41349     static const bool allowDuplicate = false;
41350     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2;
41351 
41352 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241353     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2(VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ = {}, uint32_t subpassCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ = {}, uint32_t dependencyCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ = {}, uint32_t correlatedViewMaskCount_ = {}, const uint32_t* pCorrelatedViewMasks_ = {}) VULKAN_HPP_NOEXCEPT
41354     : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ ), correlatedViewMaskCount( correlatedViewMaskCount_ ), pCorrelatedViewMasks( pCorrelatedViewMasks_ )
41355     {}
41356 
41357     VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41358 
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241359     RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41360     {
41361       *this = rhs;
41362     }
41363 
41364 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassCreateInfo2VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241365     RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ = {} )
41366     : flags( flags_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() ), subpassCount( static_cast<uint32_t>( subpasses_.size() ) ), pSubpasses( subpasses_.data() ), dependencyCount( static_cast<uint32_t>( dependencies_.size() ) ), pDependencies( dependencies_.data() ), correlatedViewMaskCount( static_cast<uint32_t>( correlatedViewMasks_.size() ) ), pCorrelatedViewMasks( correlatedViewMasks_.data() )
41367     {}
41368 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41369 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41370 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241371     RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41372     {
41373       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const *>( &rhs );
41374       return *this;
41375     }
41376 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241377     RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
41378     {
41379       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassCreateInfo2 ) );
41380       return *this;
41381     }
41382 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241383     RenderPassCreateInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41384     {
41385       pNext = pNext_;
41386       return *this;
41387     }
41388 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241389     RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41390     {
41391       flags = flags_;
41392       return *this;
41393     }
41394 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241395     RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
41396     {
41397       attachmentCount = attachmentCount_;
41398       return *this;
41399     }
41400 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241401     RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ ) VULKAN_HPP_NOEXCEPT
41402     {
41403       pAttachments = pAttachments_;
41404       return *this;
41405     }
41406 
41407 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241408     RenderPassCreateInfo2 & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_ ) VULKAN_HPP_NOEXCEPT
41409     {
41410       attachmentCount = static_cast<uint32_t>( attachments_.size() );
41411       pAttachments = attachments_.data();
41412       return *this;
41413     }
41414 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41415 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241416     RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
41417     {
41418       subpassCount = subpassCount_;
41419       return *this;
41420     }
41421 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241422     RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ ) VULKAN_HPP_NOEXCEPT
41423     {
41424       pSubpasses = pSubpasses_;
41425       return *this;
41426     }
41427 
41428 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241429     RenderPassCreateInfo2 & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
41430     {
41431       subpassCount = static_cast<uint32_t>( subpasses_.size() );
41432       pSubpasses = subpasses_.data();
41433       return *this;
41434     }
41435 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41436 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241437     RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
41438     {
41439       dependencyCount = dependencyCount_;
41440       return *this;
41441     }
41442 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241443     RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ ) VULKAN_HPP_NOEXCEPT
41444     {
41445       pDependencies = pDependencies_;
41446       return *this;
41447     }
41448 
41449 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241450     RenderPassCreateInfo2 & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
41451     {
41452       dependencyCount = static_cast<uint32_t>( dependencies_.size() );
41453       pDependencies = dependencies_.data();
41454       return *this;
41455     }
41456 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41457 
setCorrelatedViewMaskCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241458     RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT
41459     {
41460       correlatedViewMaskCount = correlatedViewMaskCount_;
41461       return *this;
41462     }
41463 
setPCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241464     RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
41465     {
41466       pCorrelatedViewMasks = pCorrelatedViewMasks_;
41467       return *this;
41468     }
41469 
41470 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo241471     RenderPassCreateInfo2 & setCorrelatedViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
41472     {
41473       correlatedViewMaskCount = static_cast<uint32_t>( correlatedViewMasks_.size() );
41474       pCorrelatedViewMasks = correlatedViewMasks_.data();
41475       return *this;
41476     }
41477 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
41478 
41479 
operator VkRenderPassCreateInfo2 const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241480     operator VkRenderPassCreateInfo2 const&() const VULKAN_HPP_NOEXCEPT
41481     {
41482       return *reinterpret_cast<const VkRenderPassCreateInfo2*>( this );
41483     }
41484 
operator VkRenderPassCreateInfo2&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241485     operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
41486     {
41487       return *reinterpret_cast<VkRenderPassCreateInfo2*>( this );
41488     }
41489 
41490 
41491 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41492     auto operator<=>( RenderPassCreateInfo2 const& ) const = default;
41493 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241494     bool operator==( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41495     {
41496       return ( sType == rhs.sType )
41497           && ( pNext == rhs.pNext )
41498           && ( flags == rhs.flags )
41499           && ( attachmentCount == rhs.attachmentCount )
41500           && ( pAttachments == rhs.pAttachments )
41501           && ( subpassCount == rhs.subpassCount )
41502           && ( pSubpasses == rhs.pSubpasses )
41503           && ( dependencyCount == rhs.dependencyCount )
41504           && ( pDependencies == rhs.pDependencies )
41505           && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount )
41506           && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
41507     }
41508 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo241509     bool operator!=( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
41510     {
41511       return !operator==( rhs );
41512     }
41513 #endif
41514 
41515 
41516 
41517   public:
41518     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2;
41519     const void* pNext = {};
41520     VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
41521     uint32_t attachmentCount = {};
41522     const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments = {};
41523     uint32_t subpassCount = {};
41524     const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses = {};
41525     uint32_t dependencyCount = {};
41526     const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies = {};
41527     uint32_t correlatedViewMaskCount = {};
41528     const uint32_t* pCorrelatedViewMasks = {};
41529 
41530   };
41531   static_assert( sizeof( RenderPassCreateInfo2 ) == sizeof( VkRenderPassCreateInfo2 ), "struct and wrapper have different size!" );
41532   static_assert( std::is_standard_layout<RenderPassCreateInfo2>::value, "struct wrapper is not a standard layout!" );
41533 
41534   template <>
41535   struct CppType<StructureType, StructureType::eRenderPassCreateInfo2>
41536   {
41537     using Type = RenderPassCreateInfo2;
41538   };
41539   using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
41540 
41541   struct SamplerCreateInfo
41542   {
41543     static const bool allowDuplicate = false;
41544     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo;
41545 
41546 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo41547     VULKAN_HPP_CONSTEXPR SamplerCreateInfo(VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Filter magFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::Filter minFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, float mipLodBias_ = {}, VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ = {}, float maxAnisotropy_ = {}, VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ = {}, VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, float minLod_ = {}, float maxLod_ = {}, VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack, VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {}) VULKAN_HPP_NOEXCEPT
41548     : flags( flags_ ), magFilter( magFilter_ ), minFilter( minFilter_ ), mipmapMode( mipmapMode_ ), addressModeU( addressModeU_ ), addressModeV( addressModeV_ ), addressModeW( addressModeW_ ), mipLodBias( mipLodBias_ ), anisotropyEnable( anisotropyEnable_ ), maxAnisotropy( maxAnisotropy_ ), compareEnable( compareEnable_ ), compareOp( compareOp_ ), minLod( minLod_ ), maxLod( maxLod_ ), borderColor( borderColor_ ), unnormalizedCoordinates( unnormalizedCoordinates_ )
41549     {}
41550 
41551     VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41552 
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo41553     SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41554     {
41555       *this = rhs;
41556     }
41557 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41558 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo41559     SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41560     {
41561       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCreateInfo const *>( &rhs );
41562       return *this;
41563     }
41564 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo41565     SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41566     {
41567       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerCreateInfo ) );
41568       return *this;
41569     }
41570 
setPNextVULKAN_HPP_NAMESPACE::SamplerCreateInfo41571     SamplerCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41572     {
41573       pNext = pNext_;
41574       return *this;
41575     }
41576 
setFlagsVULKAN_HPP_NAMESPACE::SamplerCreateInfo41577     SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
41578     {
41579       flags = flags_;
41580       return *this;
41581     }
41582 
setMagFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo41583     SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT
41584     {
41585       magFilter = magFilter_;
41586       return *this;
41587     }
41588 
setMinFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo41589     SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT
41590     {
41591       minFilter = minFilter_;
41592       return *this;
41593     }
41594 
setMipmapModeVULKAN_HPP_NAMESPACE::SamplerCreateInfo41595     SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT
41596     {
41597       mipmapMode = mipmapMode_;
41598       return *this;
41599     }
41600 
setAddressModeUVULKAN_HPP_NAMESPACE::SamplerCreateInfo41601     SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT
41602     {
41603       addressModeU = addressModeU_;
41604       return *this;
41605     }
41606 
setAddressModeVVULKAN_HPP_NAMESPACE::SamplerCreateInfo41607     SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT
41608     {
41609       addressModeV = addressModeV_;
41610       return *this;
41611     }
41612 
setAddressModeWVULKAN_HPP_NAMESPACE::SamplerCreateInfo41613     SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT
41614     {
41615       addressModeW = addressModeW_;
41616       return *this;
41617     }
41618 
setMipLodBiasVULKAN_HPP_NAMESPACE::SamplerCreateInfo41619     SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT
41620     {
41621       mipLodBias = mipLodBias_;
41622       return *this;
41623     }
41624 
setAnisotropyEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo41625     SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT
41626     {
41627       anisotropyEnable = anisotropyEnable_;
41628       return *this;
41629     }
41630 
setMaxAnisotropyVULKAN_HPP_NAMESPACE::SamplerCreateInfo41631     SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT
41632     {
41633       maxAnisotropy = maxAnisotropy_;
41634       return *this;
41635     }
41636 
setCompareEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo41637     SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT
41638     {
41639       compareEnable = compareEnable_;
41640       return *this;
41641     }
41642 
setCompareOpVULKAN_HPP_NAMESPACE::SamplerCreateInfo41643     SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
41644     {
41645       compareOp = compareOp_;
41646       return *this;
41647     }
41648 
setMinLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo41649     SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
41650     {
41651       minLod = minLod_;
41652       return *this;
41653     }
41654 
setMaxLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo41655     SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT
41656     {
41657       maxLod = maxLod_;
41658       return *this;
41659     }
41660 
setBorderColorVULKAN_HPP_NAMESPACE::SamplerCreateInfo41661     SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT
41662     {
41663       borderColor = borderColor_;
41664       return *this;
41665     }
41666 
setUnnormalizedCoordinatesVULKAN_HPP_NAMESPACE::SamplerCreateInfo41667     SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT
41668     {
41669       unnormalizedCoordinates = unnormalizedCoordinates_;
41670       return *this;
41671     }
41672 
41673 
operator VkSamplerCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerCreateInfo41674     operator VkSamplerCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41675     {
41676       return *reinterpret_cast<const VkSamplerCreateInfo*>( this );
41677     }
41678 
operator VkSamplerCreateInfo&VULKAN_HPP_NAMESPACE::SamplerCreateInfo41679     operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
41680     {
41681       return *reinterpret_cast<VkSamplerCreateInfo*>( this );
41682     }
41683 
41684 
41685 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41686     auto operator<=>( SamplerCreateInfo const& ) const = default;
41687 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerCreateInfo41688     bool operator==( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41689     {
41690       return ( sType == rhs.sType )
41691           && ( pNext == rhs.pNext )
41692           && ( flags == rhs.flags )
41693           && ( magFilter == rhs.magFilter )
41694           && ( minFilter == rhs.minFilter )
41695           && ( mipmapMode == rhs.mipmapMode )
41696           && ( addressModeU == rhs.addressModeU )
41697           && ( addressModeV == rhs.addressModeV )
41698           && ( addressModeW == rhs.addressModeW )
41699           && ( mipLodBias == rhs.mipLodBias )
41700           && ( anisotropyEnable == rhs.anisotropyEnable )
41701           && ( maxAnisotropy == rhs.maxAnisotropy )
41702           && ( compareEnable == rhs.compareEnable )
41703           && ( compareOp == rhs.compareOp )
41704           && ( minLod == rhs.minLod )
41705           && ( maxLod == rhs.maxLod )
41706           && ( borderColor == rhs.borderColor )
41707           && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
41708     }
41709 
operator !=VULKAN_HPP_NAMESPACE::SamplerCreateInfo41710     bool operator!=( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41711     {
41712       return !operator==( rhs );
41713     }
41714 #endif
41715 
41716 
41717 
41718   public:
41719     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo;
41720     const void* pNext = {};
41721     VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {};
41722     VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
41723     VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
41724     VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest;
41725     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
41726     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
41727     VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
41728     float mipLodBias = {};
41729     VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {};
41730     float maxAnisotropy = {};
41731     VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {};
41732     VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
41733     float minLod = {};
41734     float maxLod = {};
41735     VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack;
41736     VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {};
41737 
41738   };
41739   static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" );
41740   static_assert( std::is_standard_layout<SamplerCreateInfo>::value, "struct wrapper is not a standard layout!" );
41741 
41742   template <>
41743   struct CppType<StructureType, StructureType::eSamplerCreateInfo>
41744   {
41745     using Type = SamplerCreateInfo;
41746   };
41747 
41748   struct SamplerYcbcrConversionCreateInfo
41749   {
41750     static const bool allowDuplicate = false;
41751     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo;
41752 
41753 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41754     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {}) VULKAN_HPP_NOEXCEPT
41755     : format( format_ ), ycbcrModel( ycbcrModel_ ), ycbcrRange( ycbcrRange_ ), components( components_ ), xChromaOffset( xChromaOffset_ ), yChromaOffset( yChromaOffset_ ), chromaFilter( chromaFilter_ ), forceExplicitReconstruction( forceExplicitReconstruction_ )
41756     {}
41757 
41758     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
41759 
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41760     SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41761     {
41762       *this = rhs;
41763     }
41764 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
41765 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41766     SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41767     {
41768       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const *>( &rhs );
41769       return *this;
41770     }
41771 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41772     SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
41773     {
41774       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerYcbcrConversionCreateInfo ) );
41775       return *this;
41776     }
41777 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41778     SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
41779     {
41780       pNext = pNext_;
41781       return *this;
41782     }
41783 
setFormatVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41784     SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
41785     {
41786       format = format_;
41787       return *this;
41788     }
41789 
setYcbcrModelVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41790     SamplerYcbcrConversionCreateInfo & setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
41791     {
41792       ycbcrModel = ycbcrModel_;
41793       return *this;
41794     }
41795 
setYcbcrRangeVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41796     SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT
41797     {
41798       ycbcrRange = ycbcrRange_;
41799       return *this;
41800     }
41801 
setComponentsVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41802     SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
41803     {
41804       components = components_;
41805       return *this;
41806     }
41807 
setXChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41808     SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT
41809     {
41810       xChromaOffset = xChromaOffset_;
41811       return *this;
41812     }
41813 
setYChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41814     SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT
41815     {
41816       yChromaOffset = yChromaOffset_;
41817       return *this;
41818     }
41819 
setChromaFilterVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41820     SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT
41821     {
41822       chromaFilter = chromaFilter_;
41823       return *this;
41824     }
41825 
setForceExplicitReconstructionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41826     SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
41827     {
41828       forceExplicitReconstruction = forceExplicitReconstruction_;
41829       return *this;
41830     }
41831 
41832 
operator VkSamplerYcbcrConversionCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41833     operator VkSamplerYcbcrConversionCreateInfo const&() const VULKAN_HPP_NOEXCEPT
41834     {
41835       return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( this );
41836     }
41837 
operator VkSamplerYcbcrConversionCreateInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41838     operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
41839     {
41840       return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>( this );
41841     }
41842 
41843 
41844 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41845     auto operator<=>( SamplerYcbcrConversionCreateInfo const& ) const = default;
41846 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41847     bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41848     {
41849       return ( sType == rhs.sType )
41850           && ( pNext == rhs.pNext )
41851           && ( format == rhs.format )
41852           && ( ycbcrModel == rhs.ycbcrModel )
41853           && ( ycbcrRange == rhs.ycbcrRange )
41854           && ( components == rhs.components )
41855           && ( xChromaOffset == rhs.xChromaOffset )
41856           && ( yChromaOffset == rhs.yChromaOffset )
41857           && ( chromaFilter == rhs.chromaFilter )
41858           && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
41859     }
41860 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo41861     bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
41862     {
41863       return !operator==( rhs );
41864     }
41865 #endif
41866 
41867 
41868 
41869   public:
41870     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
41871     const void* pNext = {};
41872     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
41873     VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
41874     VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
41875     VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
41876     VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
41877     VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
41878     VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
41879     VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {};
41880 
41881   };
41882   static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" );
41883   static_assert( std::is_standard_layout<SamplerYcbcrConversionCreateInfo>::value, "struct wrapper is not a standard layout!" );
41884 
41885   template <>
41886   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionCreateInfo>
41887   {
41888     using Type = SamplerYcbcrConversionCreateInfo;
41889   };
41890   using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
41891 
41892   class SamplerYcbcrConversion
41893   {
41894   public:
41895     using CType = VkSamplerYcbcrConversion;
41896 
41897     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion;
41898     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
41899 
41900   public:
SamplerYcbcrConversion()41901     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() VULKAN_HPP_NOEXCEPT
41902       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
41903     {}
41904 
SamplerYcbcrConversion(std::nullptr_t)41905     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
41906       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
41907     {}
41908 
SamplerYcbcrConversion(VkSamplerYcbcrConversion samplerYcbcrConversion)41909     VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT
41910       : m_samplerYcbcrConversion( samplerYcbcrConversion )
41911     {}
41912 
41913 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSamplerYcbcrConversion samplerYcbcrConversion)41914     SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion) VULKAN_HPP_NOEXCEPT
41915     {
41916       m_samplerYcbcrConversion = samplerYcbcrConversion;
41917       return *this;
41918     }
41919 #endif
41920 
operator =(std::nullptr_t)41921     SamplerYcbcrConversion & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
41922     {
41923       m_samplerYcbcrConversion = VK_NULL_HANDLE;
41924       return *this;
41925     }
41926 
41927 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
41928     auto operator<=>( SamplerYcbcrConversion const& ) const = default;
41929 #else
operator ==(SamplerYcbcrConversion const & rhs) const41930     bool operator==( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
41931     {
41932       return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion;
41933     }
41934 
operator !=(SamplerYcbcrConversion const & rhs) const41935     bool operator!=(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
41936     {
41937       return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion;
41938     }
41939 
operator <(SamplerYcbcrConversion const & rhs) const41940     bool operator<(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT
41941     {
41942       return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion;
41943     }
41944 #endif
41945 
operator VkSamplerYcbcrConversion() const41946     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT
41947     {
41948       return m_samplerYcbcrConversion;
41949     }
41950 
operator bool() const41951     explicit operator bool() const VULKAN_HPP_NOEXCEPT
41952     {
41953       return m_samplerYcbcrConversion != VK_NULL_HANDLE;
41954     }
41955 
operator !() const41956     bool operator!() const VULKAN_HPP_NOEXCEPT
41957     {
41958       return m_samplerYcbcrConversion == VK_NULL_HANDLE;
41959     }
41960 
41961   private:
41962     VkSamplerYcbcrConversion m_samplerYcbcrConversion;
41963   };
41964   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" );
41965 
41966   template <>
41967   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSamplerYcbcrConversion>
41968   {
41969     using type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
41970   };
41971 
41972   template <>
41973   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion>
41974   {
41975     using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
41976   };
41977 
41978 
41979   template <>
41980   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion>
41981   {
41982     using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion;
41983   };
41984 
41985 
41986   template <>
41987   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
41988   {
41989     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
41990   };
41991   using SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
41992 
41993   struct SemaphoreCreateInfo
41994   {
41995     static const bool allowDuplicate = false;
41996     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo;
41997 
41998 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo41999     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
42000     : flags( flags_ )
42001     {}
42002 
42003     VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42004 
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42005     SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42006     {
42007       *this = rhs;
42008     }
42009 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42010 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42011     SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42012     {
42013       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const *>( &rhs );
42014       return *this;
42015     }
42016 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42017     SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42018     {
42019       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreCreateInfo ) );
42020       return *this;
42021     }
42022 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42023     SemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42024     {
42025       pNext = pNext_;
42026       return *this;
42027     }
42028 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42029     SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42030     {
42031       flags = flags_;
42032       return *this;
42033     }
42034 
42035 
operator VkSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42036     operator VkSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
42037     {
42038       return *reinterpret_cast<const VkSemaphoreCreateInfo*>( this );
42039     }
42040 
operator VkSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42041     operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
42042     {
42043       return *reinterpret_cast<VkSemaphoreCreateInfo*>( this );
42044     }
42045 
42046 
42047 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42048     auto operator<=>( SemaphoreCreateInfo const& ) const = default;
42049 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42050     bool operator==( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42051     {
42052       return ( sType == rhs.sType )
42053           && ( pNext == rhs.pNext )
42054           && ( flags == rhs.flags );
42055     }
42056 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo42057     bool operator!=( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42058     {
42059       return !operator==( rhs );
42060     }
42061 #endif
42062 
42063 
42064 
42065   public:
42066     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo;
42067     const void* pNext = {};
42068     VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {};
42069 
42070   };
42071   static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" );
42072   static_assert( std::is_standard_layout<SemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
42073 
42074   template <>
42075   struct CppType<StructureType, StructureType::eSemaphoreCreateInfo>
42076   {
42077     using Type = SemaphoreCreateInfo;
42078   };
42079 
42080   struct ShaderModuleCreateInfo
42081   {
42082     static const bool allowDuplicate = false;
42083     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo;
42084 
42085 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42086     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo(VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {}, size_t codeSize_ = {}, const uint32_t* pCode_ = {}) VULKAN_HPP_NOEXCEPT
42087     : flags( flags_ ), codeSize( codeSize_ ), pCode( pCode_ )
42088     {}
42089 
42090     VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42091 
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42092     ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42093     {
42094       *this = rhs;
42095     }
42096 
42097 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42098     ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ )
42099     : flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() )
42100     {}
42101 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42102 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42103 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42104     ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42105     {
42106       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const *>( &rhs );
42107       return *this;
42108     }
42109 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42110     ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
42111     {
42112       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderModuleCreateInfo ) );
42113       return *this;
42114     }
42115 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42116     ShaderModuleCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42117     {
42118       pNext = pNext_;
42119       return *this;
42120     }
42121 
setFlagsVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42122     ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
42123     {
42124       flags = flags_;
42125       return *this;
42126     }
42127 
setCodeSizeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42128     ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
42129     {
42130       codeSize = codeSize_;
42131       return *this;
42132     }
42133 
setPCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42134     ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ ) VULKAN_HPP_NOEXCEPT
42135     {
42136       pCode = pCode_;
42137       return *this;
42138     }
42139 
42140 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42141     ShaderModuleCreateInfo & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ ) VULKAN_HPP_NOEXCEPT
42142     {
42143       codeSize = code_.size() * 4;
42144       pCode = code_.data();
42145       return *this;
42146     }
42147 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42148 
42149 
operator VkShaderModuleCreateInfo const&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42150     operator VkShaderModuleCreateInfo const&() const VULKAN_HPP_NOEXCEPT
42151     {
42152       return *reinterpret_cast<const VkShaderModuleCreateInfo*>( this );
42153     }
42154 
operator VkShaderModuleCreateInfo&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42155     operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
42156     {
42157       return *reinterpret_cast<VkShaderModuleCreateInfo*>( this );
42158     }
42159 
42160 
42161 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42162     auto operator<=>( ShaderModuleCreateInfo const& ) const = default;
42163 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42164     bool operator==( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42165     {
42166       return ( sType == rhs.sType )
42167           && ( pNext == rhs.pNext )
42168           && ( flags == rhs.flags )
42169           && ( codeSize == rhs.codeSize )
42170           && ( pCode == rhs.pCode );
42171     }
42172 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo42173     bool operator!=( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
42174     {
42175       return !operator==( rhs );
42176     }
42177 #endif
42178 
42179 
42180 
42181   public:
42182     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo;
42183     const void* pNext = {};
42184     VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {};
42185     size_t codeSize = {};
42186     const uint32_t* pCode = {};
42187 
42188   };
42189   static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" );
42190   static_assert( std::is_standard_layout<ShaderModuleCreateInfo>::value, "struct wrapper is not a standard layout!" );
42191 
42192   template <>
42193   struct CppType<StructureType, StructureType::eShaderModuleCreateInfo>
42194   {
42195     using Type = ShaderModuleCreateInfo;
42196   };
42197 
42198   class SurfaceKHR
42199   {
42200   public:
42201     using CType = VkSurfaceKHR;
42202 
42203     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR;
42204     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
42205 
42206   public:
SurfaceKHR()42207     VULKAN_HPP_CONSTEXPR SurfaceKHR() VULKAN_HPP_NOEXCEPT
42208       : m_surfaceKHR(VK_NULL_HANDLE)
42209     {}
42210 
SurfaceKHR(std::nullptr_t)42211     VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42212       : m_surfaceKHR(VK_NULL_HANDLE)
42213     {}
42214 
SurfaceKHR(VkSurfaceKHR surfaceKHR)42215     VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT
42216       : m_surfaceKHR( surfaceKHR )
42217     {}
42218 
42219 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSurfaceKHR surfaceKHR)42220     SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR) VULKAN_HPP_NOEXCEPT
42221     {
42222       m_surfaceKHR = surfaceKHR;
42223       return *this;
42224     }
42225 #endif
42226 
operator =(std::nullptr_t)42227     SurfaceKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42228     {
42229       m_surfaceKHR = VK_NULL_HANDLE;
42230       return *this;
42231     }
42232 
42233 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42234     auto operator<=>( SurfaceKHR const& ) const = default;
42235 #else
operator ==(SurfaceKHR const & rhs) const42236     bool operator==( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
42237     {
42238       return m_surfaceKHR == rhs.m_surfaceKHR;
42239     }
42240 
operator !=(SurfaceKHR const & rhs) const42241     bool operator!=(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
42242     {
42243       return m_surfaceKHR != rhs.m_surfaceKHR;
42244     }
42245 
operator <(SurfaceKHR const & rhs) const42246     bool operator<(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
42247     {
42248       return m_surfaceKHR < rhs.m_surfaceKHR;
42249     }
42250 #endif
42251 
operator VkSurfaceKHR() const42252     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const VULKAN_HPP_NOEXCEPT
42253     {
42254       return m_surfaceKHR;
42255     }
42256 
operator bool() const42257     explicit operator bool() const VULKAN_HPP_NOEXCEPT
42258     {
42259       return m_surfaceKHR != VK_NULL_HANDLE;
42260     }
42261 
operator !() const42262     bool operator!() const VULKAN_HPP_NOEXCEPT
42263     {
42264       return m_surfaceKHR == VK_NULL_HANDLE;
42265     }
42266 
42267   private:
42268     VkSurfaceKHR m_surfaceKHR;
42269   };
42270   static_assert( sizeof( VULKAN_HPP_NAMESPACE::SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" );
42271 
42272   template <>
42273   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eSurfaceKHR>
42274   {
42275     using type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
42276   };
42277 
42278   template <>
42279   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR>
42280   {
42281     using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
42282   };
42283 
42284 
42285   template <>
42286   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR>
42287   {
42288     using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR;
42289   };
42290 
42291 
42292   template <>
42293   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::SurfaceKHR>
42294   {
42295     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
42296   };
42297 
42298   struct SwapchainCreateInfoKHR
42299   {
42300     static const bool allowDuplicate = false;
42301     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR;
42302 
42303 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42304     VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, uint32_t minImageCount_ = {}, VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}, uint32_t imageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {}) VULKAN_HPP_NOEXCEPT
42305     : flags( flags_ ), surface( surface_ ), minImageCount( minImageCount_ ), imageFormat( imageFormat_ ), imageColorSpace( imageColorSpace_ ), imageExtent( imageExtent_ ), imageArrayLayers( imageArrayLayers_ ), imageUsage( imageUsage_ ), imageSharingMode( imageSharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ), preTransform( preTransform_ ), compositeAlpha( compositeAlpha_ ), presentMode( presentMode_ ), clipped( clipped_ ), oldSwapchain( oldSwapchain_ )
42306     {}
42307 
42308     VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42309 
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42310     SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42311     {
42312       *this = rhs;
42313     }
42314 
42315 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42316     SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_, VULKAN_HPP_NAMESPACE::SurfaceKHR surface_, uint32_t minImageCount_, VULKAN_HPP_NAMESPACE::Format imageFormat_, VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_, uint32_t imageArrayLayers_, VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_, VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {} )
42317     : flags( flags_ ), surface( surface_ ), minImageCount( minImageCount_ ), imageFormat( imageFormat_ ), imageColorSpace( imageColorSpace_ ), imageExtent( imageExtent_ ), imageArrayLayers( imageArrayLayers_ ), imageUsage( imageUsage_ ), imageSharingMode( imageSharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ), preTransform( preTransform_ ), compositeAlpha( compositeAlpha_ ), presentMode( presentMode_ ), clipped( clipped_ ), oldSwapchain( oldSwapchain_ )
42318     {}
42319 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42320 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42321 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42322     SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42323     {
42324       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const *>( &rhs );
42325       return *this;
42326     }
42327 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42328     SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
42329     {
42330       memcpy( static_cast<void *>( this ), &rhs, sizeof( SwapchainCreateInfoKHR ) );
42331       return *this;
42332     }
42333 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42334     SwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42335     {
42336       pNext = pNext_;
42337       return *this;
42338     }
42339 
setFlagsVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42340     SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
42341     {
42342       flags = flags_;
42343       return *this;
42344     }
42345 
setSurfaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42346     SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
42347     {
42348       surface = surface_;
42349       return *this;
42350     }
42351 
setMinImageCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42352     SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT
42353     {
42354       minImageCount = minImageCount_;
42355       return *this;
42356     }
42357 
setImageFormatVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42358     SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
42359     {
42360       imageFormat = imageFormat_;
42361       return *this;
42362     }
42363 
setImageColorSpaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42364     SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT
42365     {
42366       imageColorSpace = imageColorSpace_;
42367       return *this;
42368     }
42369 
setImageExtentVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42370     SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
42371     {
42372       imageExtent = imageExtent_;
42373       return *this;
42374     }
42375 
setImageArrayLayersVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42376     SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT
42377     {
42378       imageArrayLayers = imageArrayLayers_;
42379       return *this;
42380     }
42381 
setImageUsageVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42382     SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
42383     {
42384       imageUsage = imageUsage_;
42385       return *this;
42386     }
42387 
setImageSharingModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42388     SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT
42389     {
42390       imageSharingMode = imageSharingMode_;
42391       return *this;
42392     }
42393 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42394     SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
42395     {
42396       queueFamilyIndexCount = queueFamilyIndexCount_;
42397       return *this;
42398     }
42399 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42400     SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
42401     {
42402       pQueueFamilyIndices = pQueueFamilyIndices_;
42403       return *this;
42404     }
42405 
42406 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42407     SwapchainCreateInfoKHR & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
42408     {
42409       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
42410       pQueueFamilyIndices = queueFamilyIndices_.data();
42411       return *this;
42412     }
42413 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42414 
setPreTransformVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42415     SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT
42416     {
42417       preTransform = preTransform_;
42418       return *this;
42419     }
42420 
setCompositeAlphaVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42421     SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT
42422     {
42423       compositeAlpha = compositeAlpha_;
42424       return *this;
42425     }
42426 
setPresentModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42427     SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
42428     {
42429       presentMode = presentMode_;
42430       return *this;
42431     }
42432 
setClippedVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42433     SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT
42434     {
42435       clipped = clipped_;
42436       return *this;
42437     }
42438 
setOldSwapchainVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42439     SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT
42440     {
42441       oldSwapchain = oldSwapchain_;
42442       return *this;
42443     }
42444 
42445 
operator VkSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42446     operator VkSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
42447     {
42448       return *reinterpret_cast<const VkSwapchainCreateInfoKHR*>( this );
42449     }
42450 
operator VkSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42451     operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
42452     {
42453       return *reinterpret_cast<VkSwapchainCreateInfoKHR*>( this );
42454     }
42455 
42456 
42457 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42458     auto operator<=>( SwapchainCreateInfoKHR const& ) const = default;
42459 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42460     bool operator==( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42461     {
42462       return ( sType == rhs.sType )
42463           && ( pNext == rhs.pNext )
42464           && ( flags == rhs.flags )
42465           && ( surface == rhs.surface )
42466           && ( minImageCount == rhs.minImageCount )
42467           && ( imageFormat == rhs.imageFormat )
42468           && ( imageColorSpace == rhs.imageColorSpace )
42469           && ( imageExtent == rhs.imageExtent )
42470           && ( imageArrayLayers == rhs.imageArrayLayers )
42471           && ( imageUsage == rhs.imageUsage )
42472           && ( imageSharingMode == rhs.imageSharingMode )
42473           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
42474           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
42475           && ( preTransform == rhs.preTransform )
42476           && ( compositeAlpha == rhs.compositeAlpha )
42477           && ( presentMode == rhs.presentMode )
42478           && ( clipped == rhs.clipped )
42479           && ( oldSwapchain == rhs.oldSwapchain );
42480     }
42481 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR42482     bool operator!=( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
42483     {
42484       return !operator==( rhs );
42485     }
42486 #endif
42487 
42488 
42489 
42490   public:
42491     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR;
42492     const void* pNext = {};
42493     VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {};
42494     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
42495     uint32_t minImageCount = {};
42496     VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
42497     VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
42498     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
42499     uint32_t imageArrayLayers = {};
42500     VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
42501     VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
42502     uint32_t queueFamilyIndexCount = {};
42503     const uint32_t* pQueueFamilyIndices = {};
42504     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
42505     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque;
42506     VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
42507     VULKAN_HPP_NAMESPACE::Bool32 clipped = {};
42508     VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {};
42509 
42510   };
42511   static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
42512   static_assert( std::is_standard_layout<SwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
42513 
42514   template <>
42515   struct CppType<StructureType, StructureType::eSwapchainCreateInfoKHR>
42516   {
42517     using Type = SwapchainCreateInfoKHR;
42518   };
42519 
42520   struct ValidationCacheCreateInfoEXT
42521   {
42522     static const bool allowDuplicate = false;
42523     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT;
42524 
42525 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42526     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT
42527     : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ )
42528     {}
42529 
42530     VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42531 
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42532     ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42533     {
42534       *this = rhs;
42535     }
42536 
42537 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42538     template <typename T>
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42539     ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ )
42540     : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() )
42541     {}
42542 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42543 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42544 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42545     ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42546     {
42547       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const *>( &rhs );
42548       return *this;
42549     }
42550 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42551     ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42552     {
42553       memcpy( static_cast<void *>( this ), &rhs, sizeof( ValidationCacheCreateInfoEXT ) );
42554       return *this;
42555     }
42556 
setPNextVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42557     ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42558     {
42559       pNext = pNext_;
42560       return *this;
42561     }
42562 
setFlagsVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42563     ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
42564     {
42565       flags = flags_;
42566       return *this;
42567     }
42568 
setInitialDataSizeVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42569     ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
42570     {
42571       initialDataSize = initialDataSize_;
42572       return *this;
42573     }
42574 
setPInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42575     ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT
42576     {
42577       pInitialData = pInitialData_;
42578       return *this;
42579     }
42580 
42581 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42582     template <typename T>
setInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42583     ValidationCacheCreateInfoEXT & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
42584     {
42585       initialDataSize = initialData_.size() * sizeof(T);
42586       pInitialData = initialData_.data();
42587       return *this;
42588     }
42589 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
42590 
42591 
operator VkValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42592     operator VkValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
42593     {
42594       return *reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( this );
42595     }
42596 
operator VkValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42597     operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
42598     {
42599       return *reinterpret_cast<VkValidationCacheCreateInfoEXT*>( this );
42600     }
42601 
42602 
42603 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42604     auto operator<=>( ValidationCacheCreateInfoEXT const& ) const = default;
42605 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42606     bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42607     {
42608       return ( sType == rhs.sType )
42609           && ( pNext == rhs.pNext )
42610           && ( flags == rhs.flags )
42611           && ( initialDataSize == rhs.initialDataSize )
42612           && ( pInitialData == rhs.pInitialData );
42613     }
42614 
operator !=VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT42615     bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42616     {
42617       return !operator==( rhs );
42618     }
42619 #endif
42620 
42621 
42622 
42623   public:
42624     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
42625     const void* pNext = {};
42626     VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {};
42627     size_t initialDataSize = {};
42628     const void* pInitialData = {};
42629 
42630   };
42631   static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
42632   static_assert( std::is_standard_layout<ValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
42633 
42634   template <>
42635   struct CppType<StructureType, StructureType::eValidationCacheCreateInfoEXT>
42636   {
42637     using Type = ValidationCacheCreateInfoEXT;
42638   };
42639 
42640   class ValidationCacheEXT
42641   {
42642   public:
42643     using CType = VkValidationCacheEXT;
42644 
42645     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT;
42646     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
42647 
42648   public:
ValidationCacheEXT()42649     VULKAN_HPP_CONSTEXPR ValidationCacheEXT() VULKAN_HPP_NOEXCEPT
42650       : m_validationCacheEXT(VK_NULL_HANDLE)
42651     {}
42652 
ValidationCacheEXT(std::nullptr_t)42653     VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42654       : m_validationCacheEXT(VK_NULL_HANDLE)
42655     {}
42656 
ValidationCacheEXT(VkValidationCacheEXT validationCacheEXT)42657     VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT
42658       : m_validationCacheEXT( validationCacheEXT )
42659     {}
42660 
42661 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkValidationCacheEXT validationCacheEXT)42662     ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT) VULKAN_HPP_NOEXCEPT
42663     {
42664       m_validationCacheEXT = validationCacheEXT;
42665       return *this;
42666     }
42667 #endif
42668 
operator =(std::nullptr_t)42669     ValidationCacheEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
42670     {
42671       m_validationCacheEXT = VK_NULL_HANDLE;
42672       return *this;
42673     }
42674 
42675 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42676     auto operator<=>( ValidationCacheEXT const& ) const = default;
42677 #else
operator ==(ValidationCacheEXT const & rhs) const42678     bool operator==( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42679     {
42680       return m_validationCacheEXT == rhs.m_validationCacheEXT;
42681     }
42682 
operator !=(ValidationCacheEXT const & rhs) const42683     bool operator!=(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42684     {
42685       return m_validationCacheEXT != rhs.m_validationCacheEXT;
42686     }
42687 
operator <(ValidationCacheEXT const & rhs) const42688     bool operator<(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
42689     {
42690       return m_validationCacheEXT < rhs.m_validationCacheEXT;
42691     }
42692 #endif
42693 
operator VkValidationCacheEXT() const42694     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const VULKAN_HPP_NOEXCEPT
42695     {
42696       return m_validationCacheEXT;
42697     }
42698 
operator bool() const42699     explicit operator bool() const VULKAN_HPP_NOEXCEPT
42700     {
42701       return m_validationCacheEXT != VK_NULL_HANDLE;
42702     }
42703 
operator !() const42704     bool operator!() const VULKAN_HPP_NOEXCEPT
42705     {
42706       return m_validationCacheEXT == VK_NULL_HANDLE;
42707     }
42708 
42709   private:
42710     VkValidationCacheEXT m_validationCacheEXT;
42711   };
42712   static_assert( sizeof( VULKAN_HPP_NAMESPACE::ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" );
42713 
42714   template <>
42715   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eValidationCacheEXT>
42716   {
42717     using type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
42718   };
42719 
42720   template <>
42721   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT>
42722   {
42723     using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
42724   };
42725 
42726 
42727   template <>
42728   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT>
42729   {
42730     using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT;
42731   };
42732 
42733 
42734   template <>
42735   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
42736   {
42737     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
42738   };
42739 
42740   struct DisplayPowerInfoEXT
42741   {
42742     static const bool allowDuplicate = false;
42743     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT;
42744 
42745 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42746     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT(VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff) VULKAN_HPP_NOEXCEPT
42747     : powerState( powerState_ )
42748     {}
42749 
42750     VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42751 
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42752     DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42753     {
42754       *this = rhs;
42755     }
42756 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42757 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42758     DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42759     {
42760       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const *>( &rhs );
42761       return *this;
42762     }
42763 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42764     DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
42765     {
42766       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPowerInfoEXT ) );
42767       return *this;
42768     }
42769 
setPNextVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42770     DisplayPowerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42771     {
42772       pNext = pNext_;
42773       return *this;
42774     }
42775 
setPowerStateVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42776     DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT
42777     {
42778       powerState = powerState_;
42779       return *this;
42780     }
42781 
42782 
operator VkDisplayPowerInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42783     operator VkDisplayPowerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
42784     {
42785       return *reinterpret_cast<const VkDisplayPowerInfoEXT*>( this );
42786     }
42787 
operator VkDisplayPowerInfoEXT&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42788     operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT
42789     {
42790       return *reinterpret_cast<VkDisplayPowerInfoEXT*>( this );
42791     }
42792 
42793 
42794 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42795     auto operator<=>( DisplayPowerInfoEXT const& ) const = default;
42796 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42797     bool operator==( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42798     {
42799       return ( sType == rhs.sType )
42800           && ( pNext == rhs.pNext )
42801           && ( powerState == rhs.powerState );
42802     }
42803 
operator !=VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT42804     bool operator!=( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
42805     {
42806       return !operator==( rhs );
42807     }
42808 #endif
42809 
42810 
42811 
42812   public:
42813     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT;
42814     const void* pNext = {};
42815     VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff;
42816 
42817   };
42818   static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" );
42819   static_assert( std::is_standard_layout<DisplayPowerInfoEXT>::value, "struct wrapper is not a standard layout!" );
42820 
42821   template <>
42822   struct CppType<StructureType, StructureType::eDisplayPowerInfoEXT>
42823   {
42824     using Type = DisplayPowerInfoEXT;
42825   };
42826 
42827   struct MappedMemoryRange
42828   {
42829     static const bool allowDuplicate = false;
42830     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange;
42831 
42832 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange42833     VULKAN_HPP_CONSTEXPR MappedMemoryRange(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
42834     : memory( memory_ ), offset( offset_ ), size( size_ )
42835     {}
42836 
42837     VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42838 
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange42839     MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
42840     {
42841       *this = rhs;
42842     }
42843 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42844 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange42845     MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
42846     {
42847       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MappedMemoryRange const *>( &rhs );
42848       return *this;
42849     }
42850 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange42851     MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
42852     {
42853       memcpy( static_cast<void *>( this ), &rhs, sizeof( MappedMemoryRange ) );
42854       return *this;
42855     }
42856 
setPNextVULKAN_HPP_NAMESPACE::MappedMemoryRange42857     MappedMemoryRange & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
42858     {
42859       pNext = pNext_;
42860       return *this;
42861     }
42862 
setMemoryVULKAN_HPP_NAMESPACE::MappedMemoryRange42863     MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
42864     {
42865       memory = memory_;
42866       return *this;
42867     }
42868 
setOffsetVULKAN_HPP_NAMESPACE::MappedMemoryRange42869     MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
42870     {
42871       offset = offset_;
42872       return *this;
42873     }
42874 
setSizeVULKAN_HPP_NAMESPACE::MappedMemoryRange42875     MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
42876     {
42877       size = size_;
42878       return *this;
42879     }
42880 
42881 
operator VkMappedMemoryRange const&VULKAN_HPP_NAMESPACE::MappedMemoryRange42882     operator VkMappedMemoryRange const&() const VULKAN_HPP_NOEXCEPT
42883     {
42884       return *reinterpret_cast<const VkMappedMemoryRange*>( this );
42885     }
42886 
operator VkMappedMemoryRange&VULKAN_HPP_NAMESPACE::MappedMemoryRange42887     operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
42888     {
42889       return *reinterpret_cast<VkMappedMemoryRange*>( this );
42890     }
42891 
42892 
42893 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42894     auto operator<=>( MappedMemoryRange const& ) const = default;
42895 #else
operator ==VULKAN_HPP_NAMESPACE::MappedMemoryRange42896     bool operator==( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
42897     {
42898       return ( sType == rhs.sType )
42899           && ( pNext == rhs.pNext )
42900           && ( memory == rhs.memory )
42901           && ( offset == rhs.offset )
42902           && ( size == rhs.size );
42903     }
42904 
operator !=VULKAN_HPP_NAMESPACE::MappedMemoryRange42905     bool operator!=( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT
42906     {
42907       return !operator==( rhs );
42908     }
42909 #endif
42910 
42911 
42912 
42913   public:
42914     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange;
42915     const void* pNext = {};
42916     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
42917     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
42918     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
42919 
42920   };
42921   static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" );
42922   static_assert( std::is_standard_layout<MappedMemoryRange>::value, "struct wrapper is not a standard layout!" );
42923 
42924   template <>
42925   struct CppType<StructureType, StructureType::eMappedMemoryRange>
42926   {
42927     using Type = MappedMemoryRange;
42928   };
42929 
42930   struct MemoryRequirements
42931   {
42932 
42933 
42934 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements42935     VULKAN_HPP_CONSTEXPR MemoryRequirements(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
42936     : size( size_ ), alignment( alignment_ ), memoryTypeBits( memoryTypeBits_ )
42937     {}
42938 
42939     VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
42940 
MemoryRequirementsVULKAN_HPP_NAMESPACE::MemoryRequirements42941     MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
42942     {
42943       *this = rhs;
42944     }
42945 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
42946 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements42947     MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
42948     {
42949       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements const *>( &rhs );
42950       return *this;
42951     }
42952 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements42953     MemoryRequirements & operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
42954     {
42955       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryRequirements ) );
42956       return *this;
42957     }
42958 
42959 
operator VkMemoryRequirements const&VULKAN_HPP_NAMESPACE::MemoryRequirements42960     operator VkMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
42961     {
42962       return *reinterpret_cast<const VkMemoryRequirements*>( this );
42963     }
42964 
operator VkMemoryRequirements&VULKAN_HPP_NAMESPACE::MemoryRequirements42965     operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
42966     {
42967       return *reinterpret_cast<VkMemoryRequirements*>( this );
42968     }
42969 
42970 
42971 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
42972     auto operator<=>( MemoryRequirements const& ) const = default;
42973 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements42974     bool operator==( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
42975     {
42976       return ( size == rhs.size )
42977           && ( alignment == rhs.alignment )
42978           && ( memoryTypeBits == rhs.memoryTypeBits );
42979     }
42980 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements42981     bool operator!=( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
42982     {
42983       return !operator==( rhs );
42984     }
42985 #endif
42986 
42987 
42988 
42989   public:
42990     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
42991     VULKAN_HPP_NAMESPACE::DeviceSize alignment = {};
42992     uint32_t memoryTypeBits = {};
42993 
42994   };
42995   static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" );
42996   static_assert( std::is_standard_layout<MemoryRequirements>::value, "struct wrapper is not a standard layout!" );
42997 
42998   struct MemoryRequirements2
42999   {
43000     static const bool allowDuplicate = false;
43001     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2;
43002 
43003 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements243004     VULKAN_HPP_CONSTEXPR MemoryRequirements2(VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT
43005     : memoryRequirements( memoryRequirements_ )
43006     {}
43007 
43008     VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43009 
MemoryRequirements2VULKAN_HPP_NAMESPACE::MemoryRequirements243010     MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
43011     {
43012       *this = rhs;
43013     }
43014 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43015 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements243016     MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
43017     {
43018       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements2 const *>( &rhs );
43019       return *this;
43020     }
43021 
operator =VULKAN_HPP_NAMESPACE::MemoryRequirements243022     MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
43023     {
43024       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryRequirements2 ) );
43025       return *this;
43026     }
43027 
43028 
operator VkMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::MemoryRequirements243029     operator VkMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
43030     {
43031       return *reinterpret_cast<const VkMemoryRequirements2*>( this );
43032     }
43033 
operator VkMemoryRequirements2&VULKAN_HPP_NAMESPACE::MemoryRequirements243034     operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
43035     {
43036       return *reinterpret_cast<VkMemoryRequirements2*>( this );
43037     }
43038 
43039 
43040 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43041     auto operator<=>( MemoryRequirements2 const& ) const = default;
43042 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements243043     bool operator==( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43044     {
43045       return ( sType == rhs.sType )
43046           && ( pNext == rhs.pNext )
43047           && ( memoryRequirements == rhs.memoryRequirements );
43048     }
43049 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements243050     bool operator!=( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43051     {
43052       return !operator==( rhs );
43053     }
43054 #endif
43055 
43056 
43057 
43058   public:
43059     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2;
43060     void* pNext = {};
43061     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
43062 
43063   };
43064   static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" );
43065   static_assert( std::is_standard_layout<MemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
43066 
43067   template <>
43068   struct CppType<StructureType, StructureType::eMemoryRequirements2>
43069   {
43070     using Type = MemoryRequirements2;
43071   };
43072   using MemoryRequirements2KHR = MemoryRequirements2;
43073 
43074   struct DeviceGroupPresentCapabilitiesKHR
43075   {
43076     static const bool allowDuplicate = false;
43077     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
43078 
43079 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43080     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR(std::array<uint32_t,VK_MAX_DEVICE_GROUP_SIZE> const& presentMask_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT
43081     : presentMask( presentMask_ ), modes( modes_ )
43082     {}
43083 
43084     VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43085 
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43086     DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43087     {
43088       *this = rhs;
43089     }
43090 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43091 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43092     DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43093     {
43094       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const *>( &rhs );
43095       return *this;
43096     }
43097 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43098     DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43099     {
43100       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupPresentCapabilitiesKHR ) );
43101       return *this;
43102     }
43103 
43104 
operator VkDeviceGroupPresentCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43105     operator VkDeviceGroupPresentCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
43106     {
43107       return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR*>( this );
43108     }
43109 
operator VkDeviceGroupPresentCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43110     operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
43111     {
43112       return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( this );
43113     }
43114 
43115 
43116 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43117     auto operator<=>( DeviceGroupPresentCapabilitiesKHR const& ) const = default;
43118 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43119     bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43120     {
43121       return ( sType == rhs.sType )
43122           && ( pNext == rhs.pNext )
43123           && ( presentMask == rhs.presentMask )
43124           && ( modes == rhs.modes );
43125     }
43126 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR43127     bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43128     {
43129       return !operator==( rhs );
43130     }
43131 #endif
43132 
43133 
43134 
43135   public:
43136     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
43137     const void* pNext = {};
43138     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> presentMask = {};
43139     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
43140 
43141   };
43142   static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" );
43143   static_assert( std::is_standard_layout<DeviceGroupPresentCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
43144 
43145   template <>
43146   struct CppType<StructureType, StructureType::eDeviceGroupPresentCapabilitiesKHR>
43147   {
43148     using Type = DeviceGroupPresentCapabilitiesKHR;
43149   };
43150 
43151   struct PhysicalDeviceSurfaceInfo2KHR
43152   {
43153     static const bool allowDuplicate = false;
43154     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
43155 
43156 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43157     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}) VULKAN_HPP_NOEXCEPT
43158     : surface( surface_ )
43159     {}
43160 
43161     VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43162 
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43163     PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
43164     {
43165       *this = rhs;
43166     }
43167 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43168 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43169     PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
43170     {
43171       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const *>( &rhs );
43172       return *this;
43173     }
43174 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43175     PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
43176     {
43177       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSurfaceInfo2KHR ) );
43178       return *this;
43179     }
43180 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43181     PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43182     {
43183       pNext = pNext_;
43184       return *this;
43185     }
43186 
setSurfaceVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43187     PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
43188     {
43189       surface = surface_;
43190       return *this;
43191     }
43192 
43193 
operator VkPhysicalDeviceSurfaceInfo2KHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43194     operator VkPhysicalDeviceSurfaceInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
43195     {
43196       return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( this );
43197     }
43198 
operator VkPhysicalDeviceSurfaceInfo2KHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43199     operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
43200     {
43201       return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>( this );
43202     }
43203 
43204 
43205 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43206     auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const& ) const = default;
43207 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43208     bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43209     {
43210       return ( sType == rhs.sType )
43211           && ( pNext == rhs.pNext )
43212           && ( surface == rhs.surface );
43213     }
43214 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR43215     bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43216     {
43217       return !operator==( rhs );
43218     }
43219 #endif
43220 
43221 
43222 
43223   public:
43224     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
43225     const void* pNext = {};
43226     VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
43227 
43228   };
43229   static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" );
43230   static_assert( std::is_standard_layout<PhysicalDeviceSurfaceInfo2KHR>::value, "struct wrapper is not a standard layout!" );
43231 
43232   template <>
43233   struct CppType<StructureType, StructureType::ePhysicalDeviceSurfaceInfo2KHR>
43234   {
43235     using Type = PhysicalDeviceSurfaceInfo2KHR;
43236   };
43237 
43238   struct DeviceMemoryOpaqueCaptureAddressInfo
43239   {
43240     static const bool allowDuplicate = false;
43241     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
43242 
43243 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43244     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT
43245     : memory( memory_ )
43246     {}
43247 
43248     VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43249 
DeviceMemoryOpaqueCaptureAddressInfoVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43250     DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43251     {
43252       *this = rhs;
43253     }
43254 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43255 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43256     DeviceMemoryOpaqueCaptureAddressInfo & operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43257     {
43258       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs );
43259       return *this;
43260     }
43261 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43262     DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43263     {
43264       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) );
43265       return *this;
43266     }
43267 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43268     DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43269     {
43270       pNext = pNext_;
43271       return *this;
43272     }
43273 
setMemoryVULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43274     DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
43275     {
43276       memory = memory_;
43277       return *this;
43278     }
43279 
43280 
operator VkDeviceMemoryOpaqueCaptureAddressInfo const&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43281     operator VkDeviceMemoryOpaqueCaptureAddressInfo const&() const VULKAN_HPP_NOEXCEPT
43282     {
43283       return *reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
43284     }
43285 
operator VkDeviceMemoryOpaqueCaptureAddressInfo&VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43286     operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT
43287     {
43288       return *reinterpret_cast<VkDeviceMemoryOpaqueCaptureAddressInfo*>( this );
43289     }
43290 
43291 
43292 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43293     auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const& ) const = default;
43294 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43295     bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43296     {
43297       return ( sType == rhs.sType )
43298           && ( pNext == rhs.pNext )
43299           && ( memory == rhs.memory );
43300     }
43301 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo43302     bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43303     {
43304       return !operator==( rhs );
43305     }
43306 #endif
43307 
43308 
43309 
43310   public:
43311     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
43312     const void* pNext = {};
43313     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
43314 
43315   };
43316   static_assert( sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) == sizeof( VkDeviceMemoryOpaqueCaptureAddressInfo ), "struct and wrapper have different size!" );
43317   static_assert( std::is_standard_layout<DeviceMemoryOpaqueCaptureAddressInfo>::value, "struct wrapper is not a standard layout!" );
43318 
43319   template <>
43320   struct CppType<StructureType, StructureType::eDeviceMemoryOpaqueCaptureAddressInfo>
43321   {
43322     using Type = DeviceMemoryOpaqueCaptureAddressInfo;
43323   };
43324   using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
43325 
43326   struct PresentInfoKHR
43327   {
43328     static const bool allowDuplicate = false;
43329     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR;
43330 
43331 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR43332     VULKAN_HPP_CONSTEXPR PresentInfoKHR(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ = {}, const uint32_t* pImageIndices_ = {}, VULKAN_HPP_NAMESPACE::Result* pResults_ = {}) VULKAN_HPP_NOEXCEPT
43333     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), swapchainCount( swapchainCount_ ), pSwapchains( pSwapchains_ ), pImageIndices( pImageIndices_ ), pResults( pResults_ )
43334     {}
43335 
43336     VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43337 
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR43338     PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43339     {
43340       *this = rhs;
43341     }
43342 
43343 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR43344     PresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ = {} )
43345     : waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), swapchainCount( static_cast<uint32_t>( swapchains_.size() ) ), pSwapchains( swapchains_.data() ), pImageIndices( imageIndices_.data() ), pResults( results_.data() )
43346     {
43347 #ifdef VULKAN_HPP_NO_EXCEPTIONS
43348       VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() );
43349       VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) );
43350       VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) );
43351 #else
43352       if ( swapchains_.size() != imageIndices_.size() )
43353       {
43354         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" );
43355       }
43356       if ( !results_.empty() && ( swapchains_.size() != results_.size() ) )
43357       {
43358         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" );
43359       }
43360       if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) )
43361       {
43362         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" );
43363       }
43364 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
43365     }
43366 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43367 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43368 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR43369     PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43370     {
43371       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentInfoKHR const *>( &rhs );
43372       return *this;
43373     }
43374 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR43375     PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43376     {
43377       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentInfoKHR ) );
43378       return *this;
43379     }
43380 
setPNextVULKAN_HPP_NAMESPACE::PresentInfoKHR43381     PresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43382     {
43383       pNext = pNext_;
43384       return *this;
43385     }
43386 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::PresentInfoKHR43387     PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
43388     {
43389       waitSemaphoreCount = waitSemaphoreCount_;
43390       return *this;
43391     }
43392 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR43393     PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43394     {
43395       pWaitSemaphores = pWaitSemaphores_;
43396       return *this;
43397     }
43398 
43399 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR43400     PresentInfoKHR & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43401     {
43402       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
43403       pWaitSemaphores = waitSemaphores_.data();
43404       return *this;
43405     }
43406 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43407 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentInfoKHR43408     PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
43409     {
43410       swapchainCount = swapchainCount_;
43411       return *this;
43412     }
43413 
setPSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR43414     PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ ) VULKAN_HPP_NOEXCEPT
43415     {
43416       pSwapchains = pSwapchains_;
43417       return *this;
43418     }
43419 
43420 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR43421     PresentInfoKHR & setSwapchains( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ ) VULKAN_HPP_NOEXCEPT
43422     {
43423       swapchainCount = static_cast<uint32_t>( swapchains_.size() );
43424       pSwapchains = swapchains_.data();
43425       return *this;
43426     }
43427 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43428 
setPImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR43429     PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ ) VULKAN_HPP_NOEXCEPT
43430     {
43431       pImageIndices = pImageIndices_;
43432       return *this;
43433     }
43434 
43435 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR43436     PresentInfoKHR & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
43437     {
43438       swapchainCount = static_cast<uint32_t>( imageIndices_.size() );
43439       pImageIndices = imageIndices_.data();
43440       return *this;
43441     }
43442 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43443 
setPResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR43444     PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result* pResults_ ) VULKAN_HPP_NOEXCEPT
43445     {
43446       pResults = pResults_;
43447       return *this;
43448     }
43449 
43450 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR43451     PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ ) VULKAN_HPP_NOEXCEPT
43452     {
43453       swapchainCount = static_cast<uint32_t>( results_.size() );
43454       pResults = results_.data();
43455       return *this;
43456     }
43457 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43458 
43459 
operator VkPresentInfoKHR const&VULKAN_HPP_NAMESPACE::PresentInfoKHR43460     operator VkPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
43461     {
43462       return *reinterpret_cast<const VkPresentInfoKHR*>( this );
43463     }
43464 
operator VkPresentInfoKHR&VULKAN_HPP_NAMESPACE::PresentInfoKHR43465     operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
43466     {
43467       return *reinterpret_cast<VkPresentInfoKHR*>( this );
43468     }
43469 
43470 
43471 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43472     auto operator<=>( PresentInfoKHR const& ) const = default;
43473 #else
operator ==VULKAN_HPP_NAMESPACE::PresentInfoKHR43474     bool operator==( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43475     {
43476       return ( sType == rhs.sType )
43477           && ( pNext == rhs.pNext )
43478           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
43479           && ( pWaitSemaphores == rhs.pWaitSemaphores )
43480           && ( swapchainCount == rhs.swapchainCount )
43481           && ( pSwapchains == rhs.pSwapchains )
43482           && ( pImageIndices == rhs.pImageIndices )
43483           && ( pResults == rhs.pResults );
43484     }
43485 
operator !=VULKAN_HPP_NAMESPACE::PresentInfoKHR43486     bool operator!=( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
43487     {
43488       return !operator==( rhs );
43489     }
43490 #endif
43491 
43492 
43493 
43494   public:
43495     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR;
43496     const void* pNext = {};
43497     uint32_t waitSemaphoreCount = {};
43498     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
43499     uint32_t swapchainCount = {};
43500     const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains = {};
43501     const uint32_t* pImageIndices = {};
43502     VULKAN_HPP_NAMESPACE::Result* pResults = {};
43503 
43504   };
43505   static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" );
43506   static_assert( std::is_standard_layout<PresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
43507 
43508   template <>
43509   struct CppType<StructureType, StructureType::ePresentInfoKHR>
43510   {
43511     using Type = PresentInfoKHR;
43512   };
43513 
43514   struct SubmitInfo
43515   {
43516     static const bool allowDuplicate = false;
43517     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo;
43518 
43519 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo43520     VULKAN_HPP_CONSTEXPR SubmitInfo(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ = {}, uint32_t commandBufferCount_ = {}, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ = {}, uint32_t signalSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {}) VULKAN_HPP_NOEXCEPT
43521     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), pWaitDstStageMask( pWaitDstStageMask_ ), commandBufferCount( commandBufferCount_ ), pCommandBuffers( pCommandBuffers_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ )
43522     {}
43523 
43524     VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43525 
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo43526     SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43527     {
43528       *this = rhs;
43529     }
43530 
43531 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo43532     SubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ = {} )
43533     : waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), pWaitDstStageMask( waitDstStageMask_.data() ), commandBufferCount( static_cast<uint32_t>( commandBuffers_.size() ) ), pCommandBuffers( commandBuffers_.data() ), signalSemaphoreCount( static_cast<uint32_t>( signalSemaphores_.size() ) ), pSignalSemaphores( signalSemaphores_.data() )
43534     {
43535 #ifdef VULKAN_HPP_NO_EXCEPTIONS
43536       VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() );
43537 #else
43538       if ( waitSemaphores_.size() != waitDstStageMask_.size() )
43539       {
43540         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" );
43541       }
43542 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
43543     }
43544 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43545 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43546 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo43547     SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43548     {
43549       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo const *>( &rhs );
43550       return *this;
43551     }
43552 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo43553     SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
43554     {
43555       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubmitInfo ) );
43556       return *this;
43557     }
43558 
setPNextVULKAN_HPP_NAMESPACE::SubmitInfo43559     SubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43560     {
43561       pNext = pNext_;
43562       return *this;
43563     }
43564 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo43565     SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
43566     {
43567       waitSemaphoreCount = waitSemaphoreCount_;
43568       return *this;
43569     }
43570 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43571     SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43572     {
43573       pWaitSemaphores = pWaitSemaphores_;
43574       return *this;
43575     }
43576 
43577 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43578     SubmitInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
43579     {
43580       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
43581       pWaitSemaphores = waitSemaphores_.data();
43582       return *this;
43583     }
43584 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43585 
setPWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo43586     SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
43587     {
43588       pWaitDstStageMask = pWaitDstStageMask_;
43589       return *this;
43590     }
43591 
43592 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo43593     SubmitInfo & setWaitDstStageMask( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
43594     {
43595       waitSemaphoreCount = static_cast<uint32_t>( waitDstStageMask_.size() );
43596       pWaitDstStageMask = waitDstStageMask_.data();
43597       return *this;
43598     }
43599 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43600 
setCommandBufferCountVULKAN_HPP_NAMESPACE::SubmitInfo43601     SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
43602     {
43603       commandBufferCount = commandBufferCount_;
43604       return *this;
43605     }
43606 
setPCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo43607     SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT
43608     {
43609       pCommandBuffers = pCommandBuffers_;
43610       return *this;
43611     }
43612 
43613 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo43614     SubmitInfo & setCommandBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ ) VULKAN_HPP_NOEXCEPT
43615     {
43616       commandBufferCount = static_cast<uint32_t>( commandBuffers_.size() );
43617       pCommandBuffers = commandBuffers_.data();
43618       return *this;
43619     }
43620 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43621 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo43622     SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
43623     {
43624       signalSemaphoreCount = signalSemaphoreCount_;
43625       return *this;
43626     }
43627 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43628     SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
43629     {
43630       pSignalSemaphores = pSignalSemaphores_;
43631       return *this;
43632     }
43633 
43634 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo43635     SubmitInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
43636     {
43637       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
43638       pSignalSemaphores = signalSemaphores_.data();
43639       return *this;
43640     }
43641 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
43642 
43643 
operator VkSubmitInfo const&VULKAN_HPP_NAMESPACE::SubmitInfo43644     operator VkSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
43645     {
43646       return *reinterpret_cast<const VkSubmitInfo*>( this );
43647     }
43648 
operator VkSubmitInfo&VULKAN_HPP_NAMESPACE::SubmitInfo43649     operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
43650     {
43651       return *reinterpret_cast<VkSubmitInfo*>( this );
43652     }
43653 
43654 
43655 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43656     auto operator<=>( SubmitInfo const& ) const = default;
43657 #else
operator ==VULKAN_HPP_NAMESPACE::SubmitInfo43658     bool operator==( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43659     {
43660       return ( sType == rhs.sType )
43661           && ( pNext == rhs.pNext )
43662           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
43663           && ( pWaitSemaphores == rhs.pWaitSemaphores )
43664           && ( pWaitDstStageMask == rhs.pWaitDstStageMask )
43665           && ( commandBufferCount == rhs.commandBufferCount )
43666           && ( pCommandBuffers == rhs.pCommandBuffers )
43667           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
43668           && ( pSignalSemaphores == rhs.pSignalSemaphores );
43669     }
43670 
operator !=VULKAN_HPP_NAMESPACE::SubmitInfo43671     bool operator!=( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
43672     {
43673       return !operator==( rhs );
43674     }
43675 #endif
43676 
43677 
43678 
43679   public:
43680     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo;
43681     const void* pNext = {};
43682     uint32_t waitSemaphoreCount = {};
43683     const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {};
43684     const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask = {};
43685     uint32_t commandBufferCount = {};
43686     const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers = {};
43687     uint32_t signalSemaphoreCount = {};
43688     const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {};
43689 
43690   };
43691   static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" );
43692   static_assert( std::is_standard_layout<SubmitInfo>::value, "struct wrapper is not a standard layout!" );
43693 
43694   template <>
43695   struct CppType<StructureType, StructureType::eSubmitInfo>
43696   {
43697     using Type = SubmitInfo;
43698   };
43699 
43700   class Queue
43701   {
43702   public:
43703     using CType = VkQueue;
43704 
43705     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue;
43706     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue;
43707 
43708   public:
Queue()43709     VULKAN_HPP_CONSTEXPR Queue() VULKAN_HPP_NOEXCEPT
43710       : m_queue(VK_NULL_HANDLE)
43711     {}
43712 
Queue(std::nullptr_t)43713     VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43714       : m_queue(VK_NULL_HANDLE)
43715     {}
43716 
Queue(VkQueue queue)43717     VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT
43718       : m_queue( queue )
43719     {}
43720 
43721 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueue queue)43722     Queue & operator=(VkQueue queue) VULKAN_HPP_NOEXCEPT
43723     {
43724       m_queue = queue;
43725       return *this;
43726     }
43727 #endif
43728 
operator =(std::nullptr_t)43729     Queue & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
43730     {
43731       m_queue = VK_NULL_HANDLE;
43732       return *this;
43733     }
43734 
43735 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43736     auto operator<=>( Queue const& ) const = default;
43737 #else
operator ==(Queue const & rhs) const43738     bool operator==( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
43739     {
43740       return m_queue == rhs.m_queue;
43741     }
43742 
operator !=(Queue const & rhs) const43743     bool operator!=(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
43744     {
43745       return m_queue != rhs.m_queue;
43746     }
43747 
operator <(Queue const & rhs) const43748     bool operator<(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT
43749     {
43750       return m_queue < rhs.m_queue;
43751     }
43752 #endif
43753 
43754 
43755     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43756     void getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43757 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43758     template <typename CheckpointDataNVAllocator = std::allocator<CheckpointDataNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43759     VULKAN_HPP_NODISCARD std::vector<CheckpointDataNV, CheckpointDataNVAllocator> getCheckpointDataNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43760     template <typename CheckpointDataNVAllocator = std::allocator<CheckpointDataNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CheckpointDataNVAllocator, typename std::enable_if<std::is_same<typename B::value_type, CheckpointDataNV>::value, int>::type = 0>
43761     VULKAN_HPP_NODISCARD std::vector<CheckpointDataNV, CheckpointDataNVAllocator> getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43762 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43763 
43764 
43765     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43766     void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43767 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43768     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43769     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43770 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43771 
43772 
43773     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43774     VULKAN_HPP_NODISCARD Result bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43775 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43776     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43777     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindSparse( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43778 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43779 
43780 
43781     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43782     void endDebugUtilsLabelEXT( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43783 
43784 
43785     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43786     void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43787 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43788     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43789     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43790 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43791 
43792 
43793     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43794     VULKAN_HPP_NODISCARD Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43795 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43796     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43797     VULKAN_HPP_NODISCARD Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43798 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43799 
43800 
43801 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
43802     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43803     VULKAN_HPP_NODISCARD Result setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43804 #else
43805     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43806     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43807 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43808 
43809 
43810 
43811     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43812     VULKAN_HPP_NODISCARD Result submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43813 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
43814     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43815     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type submit( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43816 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43817 
43818 
43819 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
43820     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43821     VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
43822 #else
43823     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
43824     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
43825 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
43826 
43827 
operator VkQueue() const43828     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const VULKAN_HPP_NOEXCEPT
43829     {
43830       return m_queue;
43831     }
43832 
operator bool() const43833     explicit operator bool() const VULKAN_HPP_NOEXCEPT
43834     {
43835       return m_queue != VK_NULL_HANDLE;
43836     }
43837 
operator !() const43838     bool operator!() const VULKAN_HPP_NOEXCEPT
43839     {
43840       return m_queue == VK_NULL_HANDLE;
43841     }
43842 
43843   private:
43844     VkQueue m_queue;
43845   };
43846   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" );
43847 
43848   template <>
43849   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eQueue>
43850   {
43851     using type = VULKAN_HPP_NAMESPACE::Queue;
43852   };
43853 
43854   template <>
43855   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eQueue>
43856   {
43857     using Type = VULKAN_HPP_NAMESPACE::Queue;
43858   };
43859 
43860 
43861   template <>
43862   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue>
43863   {
43864     using Type = VULKAN_HPP_NAMESPACE::Queue;
43865   };
43866 
43867 
43868   template <>
43869   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Queue>
43870   {
43871     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
43872   };
43873 
43874   struct DeviceQueueInfo2
43875   {
43876     static const bool allowDuplicate = false;
43877     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2;
43878 
43879 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo243880     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueIndex_ = {}) VULKAN_HPP_NOEXCEPT
43881     : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueIndex( queueIndex_ )
43882     {}
43883 
43884     VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43885 
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo243886     DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
43887     {
43888       *this = rhs;
43889     }
43890 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43891 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo243892     DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
43893     {
43894       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const *>( &rhs );
43895       return *this;
43896     }
43897 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo243898     DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
43899     {
43900       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceQueueInfo2 ) );
43901       return *this;
43902     }
43903 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueInfo243904     DeviceQueueInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
43905     {
43906       pNext = pNext_;
43907       return *this;
43908     }
43909 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueInfo243910     DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
43911     {
43912       flags = flags_;
43913       return *this;
43914     }
43915 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo243916     DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
43917     {
43918       queueFamilyIndex = queueFamilyIndex_;
43919       return *this;
43920     }
43921 
setQueueIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo243922     DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT
43923     {
43924       queueIndex = queueIndex_;
43925       return *this;
43926     }
43927 
43928 
operator VkDeviceQueueInfo2 const&VULKAN_HPP_NAMESPACE::DeviceQueueInfo243929     operator VkDeviceQueueInfo2 const&() const VULKAN_HPP_NOEXCEPT
43930     {
43931       return *reinterpret_cast<const VkDeviceQueueInfo2*>( this );
43932     }
43933 
operator VkDeviceQueueInfo2&VULKAN_HPP_NAMESPACE::DeviceQueueInfo243934     operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT
43935     {
43936       return *reinterpret_cast<VkDeviceQueueInfo2*>( this );
43937     }
43938 
43939 
43940 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
43941     auto operator<=>( DeviceQueueInfo2 const& ) const = default;
43942 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueInfo243943     bool operator==( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43944     {
43945       return ( sType == rhs.sType )
43946           && ( pNext == rhs.pNext )
43947           && ( flags == rhs.flags )
43948           && ( queueFamilyIndex == rhs.queueFamilyIndex )
43949           && ( queueIndex == rhs.queueIndex );
43950     }
43951 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueInfo243952     bool operator!=( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
43953     {
43954       return !operator==( rhs );
43955     }
43956 #endif
43957 
43958 
43959 
43960   public:
43961     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2;
43962     const void* pNext = {};
43963     VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
43964     uint32_t queueFamilyIndex = {};
43965     uint32_t queueIndex = {};
43966 
43967   };
43968   static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" );
43969   static_assert( std::is_standard_layout<DeviceQueueInfo2>::value, "struct wrapper is not a standard layout!" );
43970 
43971   template <>
43972   struct CppType<StructureType, StructureType::eDeviceQueueInfo2>
43973   {
43974     using Type = DeviceQueueInfo2;
43975   };
43976 
43977   struct FenceGetFdInfoKHR
43978   {
43979     static const bool allowDuplicate = false;
43980     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR;
43981 
43982 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43983     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
43984     : fence( fence_ ), handleType( handleType_ )
43985     {}
43986 
43987     VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
43988 
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43989     FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43990     {
43991       *this = rhs;
43992     }
43993 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
43994 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR43995     FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
43996     {
43997       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const *>( &rhs );
43998       return *this;
43999     }
44000 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR44001     FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44002     {
44003       memcpy( static_cast<void *>( this ), &rhs, sizeof( FenceGetFdInfoKHR ) );
44004       return *this;
44005     }
44006 
setPNextVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR44007     FenceGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44008     {
44009       pNext = pNext_;
44010       return *this;
44011     }
44012 
setFenceVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR44013     FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
44014     {
44015       fence = fence_;
44016       return *this;
44017     }
44018 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR44019     FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
44020     {
44021       handleType = handleType_;
44022       return *this;
44023     }
44024 
44025 
operator VkFenceGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR44026     operator VkFenceGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
44027     {
44028       return *reinterpret_cast<const VkFenceGetFdInfoKHR*>( this );
44029     }
44030 
operator VkFenceGetFdInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR44031     operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
44032     {
44033       return *reinterpret_cast<VkFenceGetFdInfoKHR*>( this );
44034     }
44035 
44036 
44037 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44038     auto operator<=>( FenceGetFdInfoKHR const& ) const = default;
44039 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR44040     bool operator==( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44041     {
44042       return ( sType == rhs.sType )
44043           && ( pNext == rhs.pNext )
44044           && ( fence == rhs.fence )
44045           && ( handleType == rhs.handleType );
44046     }
44047 
operator !=VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR44048     bool operator!=( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44049     {
44050       return !operator==( rhs );
44051     }
44052 #endif
44053 
44054 
44055 
44056   public:
44057     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR;
44058     const void* pNext = {};
44059     VULKAN_HPP_NAMESPACE::Fence fence = {};
44060     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
44061 
44062   };
44063   static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" );
44064   static_assert( std::is_standard_layout<FenceGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
44065 
44066   template <>
44067   struct CppType<StructureType, StructureType::eFenceGetFdInfoKHR>
44068   {
44069     using Type = FenceGetFdInfoKHR;
44070   };
44071 
44072 #ifdef VK_USE_PLATFORM_WIN32_KHR
44073   struct FenceGetWin32HandleInfoKHR
44074   {
44075     static const bool allowDuplicate = false;
44076     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR;
44077 
44078 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44079     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
44080     : fence( fence_ ), handleType( handleType_ )
44081     {}
44082 
44083     VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44084 
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44085     FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44086     {
44087       *this = rhs;
44088     }
44089 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44090 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44091     FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44092     {
44093       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const *>( &rhs );
44094       return *this;
44095     }
44096 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44097     FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
44098     {
44099       memcpy( static_cast<void *>( this ), &rhs, sizeof( FenceGetWin32HandleInfoKHR ) );
44100       return *this;
44101     }
44102 
setPNextVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44103     FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44104     {
44105       pNext = pNext_;
44106       return *this;
44107     }
44108 
setFenceVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44109     FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
44110     {
44111       fence = fence_;
44112       return *this;
44113     }
44114 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44115     FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
44116     {
44117       handleType = handleType_;
44118       return *this;
44119     }
44120 
44121 
operator VkFenceGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44122     operator VkFenceGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
44123     {
44124       return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( this );
44125     }
44126 
operator VkFenceGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44127     operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
44128     {
44129       return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>( this );
44130     }
44131 
44132 
44133 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44134     auto operator<=>( FenceGetWin32HandleInfoKHR const& ) const = default;
44135 #else
operator ==VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44136     bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44137     {
44138       return ( sType == rhs.sType )
44139           && ( pNext == rhs.pNext )
44140           && ( fence == rhs.fence )
44141           && ( handleType == rhs.handleType );
44142     }
44143 
operator !=VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR44144     bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
44145     {
44146       return !operator==( rhs );
44147     }
44148 #endif
44149 
44150 
44151 
44152   public:
44153     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
44154     const void* pNext = {};
44155     VULKAN_HPP_NAMESPACE::Fence fence = {};
44156     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
44157 
44158   };
44159   static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
44160   static_assert( std::is_standard_layout<FenceGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
44161 
44162   template <>
44163   struct CppType<StructureType, StructureType::eFenceGetWin32HandleInfoKHR>
44164   {
44165     using Type = FenceGetWin32HandleInfoKHR;
44166   };
44167 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
44168 
44169   struct GeneratedCommandsMemoryRequirementsInfoNV
44170   {
44171     static const bool allowDuplicate = false;
44172     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
44173 
44174 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44175     VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, uint32_t maxSequencesCount_ = {}) VULKAN_HPP_NOEXCEPT
44176     : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), maxSequencesCount( maxSequencesCount_ )
44177     {}
44178 
44179     VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44180 
GeneratedCommandsMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44181     GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
44182     {
44183       *this = rhs;
44184     }
44185 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44186 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44187     GeneratedCommandsMemoryRequirementsInfoNV & operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
44188     {
44189       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs );
44190       return *this;
44191     }
44192 
operator =VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44193     GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
44194     {
44195       memcpy( static_cast<void *>( this ), &rhs, sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) );
44196       return *this;
44197     }
44198 
setPNextVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44199     GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44200     {
44201       pNext = pNext_;
44202       return *this;
44203     }
44204 
setPipelineBindPointVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44205     GeneratedCommandsMemoryRequirementsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
44206     {
44207       pipelineBindPoint = pipelineBindPoint_;
44208       return *this;
44209     }
44210 
setPipelineVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44211     GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
44212     {
44213       pipeline = pipeline_;
44214       return *this;
44215     }
44216 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44217     GeneratedCommandsMemoryRequirementsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
44218     {
44219       indirectCommandsLayout = indirectCommandsLayout_;
44220       return *this;
44221     }
44222 
setMaxSequencesCountVULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44223     GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT
44224     {
44225       maxSequencesCount = maxSequencesCount_;
44226       return *this;
44227     }
44228 
44229 
operator VkGeneratedCommandsMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44230     operator VkGeneratedCommandsMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT
44231     {
44232       return *reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
44233     }
44234 
operator VkGeneratedCommandsMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44235     operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
44236     {
44237       return *reinterpret_cast<VkGeneratedCommandsMemoryRequirementsInfoNV*>( this );
44238     }
44239 
44240 
44241 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44242     auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const& ) const = default;
44243 #else
operator ==VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44244     bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
44245     {
44246       return ( sType == rhs.sType )
44247           && ( pNext == rhs.pNext )
44248           && ( pipelineBindPoint == rhs.pipelineBindPoint )
44249           && ( pipeline == rhs.pipeline )
44250           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
44251           && ( maxSequencesCount == rhs.maxSequencesCount );
44252     }
44253 
operator !=VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV44254     bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
44255     {
44256       return !operator==( rhs );
44257     }
44258 #endif
44259 
44260 
44261 
44262   public:
44263     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
44264     const void* pNext = {};
44265     VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
44266     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
44267     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
44268     uint32_t maxSequencesCount = {};
44269 
44270   };
44271   static_assert( sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) == sizeof( VkGeneratedCommandsMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
44272   static_assert( std::is_standard_layout<GeneratedCommandsMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
44273 
44274   template <>
44275   struct CppType<StructureType, StructureType::eGeneratedCommandsMemoryRequirementsInfoNV>
44276   {
44277     using Type = GeneratedCommandsMemoryRequirementsInfoNV;
44278   };
44279 
44280   struct ImageDrmFormatModifierPropertiesEXT
44281   {
44282     static const bool allowDuplicate = false;
44283     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT;
44284 
44285 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44286     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}) VULKAN_HPP_NOEXCEPT
44287     : drmFormatModifier( drmFormatModifier_ )
44288     {}
44289 
44290     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44291 
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44292     ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44293     {
44294       *this = rhs;
44295     }
44296 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44297 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44298     ImageDrmFormatModifierPropertiesEXT & operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44299     {
44300       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const *>( &rhs );
44301       return *this;
44302     }
44303 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44304     ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
44305     {
44306       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageDrmFormatModifierPropertiesEXT ) );
44307       return *this;
44308     }
44309 
44310 
operator VkImageDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44311     operator VkImageDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
44312     {
44313       return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT*>( this );
44314     }
44315 
operator VkImageDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44316     operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
44317     {
44318       return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( this );
44319     }
44320 
44321 
44322 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44323     auto operator<=>( ImageDrmFormatModifierPropertiesEXT const& ) const = default;
44324 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44325     bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
44326     {
44327       return ( sType == rhs.sType )
44328           && ( pNext == rhs.pNext )
44329           && ( drmFormatModifier == rhs.drmFormatModifier );
44330     }
44331 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT44332     bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
44333     {
44334       return !operator==( rhs );
44335     }
44336 #endif
44337 
44338 
44339 
44340   public:
44341     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
44342     void* pNext = {};
44343     uint64_t drmFormatModifier = {};
44344 
44345   };
44346   static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
44347   static_assert( std::is_standard_layout<ImageDrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
44348 
44349   template <>
44350   struct CppType<StructureType, StructureType::eImageDrmFormatModifierPropertiesEXT>
44351   {
44352     using Type = ImageDrmFormatModifierPropertiesEXT;
44353   };
44354 
44355   struct ImageMemoryRequirementsInfo2
44356   {
44357     static const bool allowDuplicate = false;
44358     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2;
44359 
44360 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244361     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT
44362     : image( image_ )
44363     {}
44364 
44365     VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44366 
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244367     ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44368     {
44369       *this = rhs;
44370     }
44371 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44372 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244373     ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44374     {
44375       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const *>( &rhs );
44376       return *this;
44377     }
44378 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244379     ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44380     {
44381       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageMemoryRequirementsInfo2 ) );
44382       return *this;
44383     }
44384 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244385     ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44386     {
44387       pNext = pNext_;
44388       return *this;
44389     }
44390 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244391     ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
44392     {
44393       image = image_;
44394       return *this;
44395     }
44396 
44397 
operator VkImageMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244398     operator VkImageMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
44399     {
44400       return *reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( this );
44401     }
44402 
operator VkImageMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244403     operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
44404     {
44405       return *reinterpret_cast<VkImageMemoryRequirementsInfo2*>( this );
44406     }
44407 
44408 
44409 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44410     auto operator<=>( ImageMemoryRequirementsInfo2 const& ) const = default;
44411 #else
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244412     bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44413     {
44414       return ( sType == rhs.sType )
44415           && ( pNext == rhs.pNext )
44416           && ( image == rhs.image );
44417     }
44418 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo244419     bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44420     {
44421       return !operator==( rhs );
44422     }
44423 #endif
44424 
44425 
44426 
44427   public:
44428     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
44429     const void* pNext = {};
44430     VULKAN_HPP_NAMESPACE::Image image = {};
44431 
44432   };
44433   static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
44434   static_assert( std::is_standard_layout<ImageMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
44435 
44436   template <>
44437   struct CppType<StructureType, StructureType::eImageMemoryRequirementsInfo2>
44438   {
44439     using Type = ImageMemoryRequirementsInfo2;
44440   };
44441   using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
44442 
44443   struct SparseImageFormatProperties
44444   {
44445 
44446 
44447 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties44448     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {}, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
44449     : aspectMask( aspectMask_ ), imageGranularity( imageGranularity_ ), flags( flags_ )
44450     {}
44451 
44452     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44453 
SparseImageFormatPropertiesVULKAN_HPP_NAMESPACE::SparseImageFormatProperties44454     SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
44455     {
44456       *this = rhs;
44457     }
44458 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44459 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44460     SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
44461     {
44462       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const *>( &rhs );
44463       return *this;
44464     }
44465 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44466     SparseImageFormatProperties & operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
44467     {
44468       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageFormatProperties ) );
44469       return *this;
44470     }
44471 
44472 
operator VkSparseImageFormatProperties const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44473     operator VkSparseImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
44474     {
44475       return *reinterpret_cast<const VkSparseImageFormatProperties*>( this );
44476     }
44477 
operator VkSparseImageFormatProperties&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44478     operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
44479     {
44480       return *reinterpret_cast<VkSparseImageFormatProperties*>( this );
44481     }
44482 
44483 
44484 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44485     auto operator<=>( SparseImageFormatProperties const& ) const = default;
44486 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44487     bool operator==( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
44488     {
44489       return ( aspectMask == rhs.aspectMask )
44490           && ( imageGranularity == rhs.imageGranularity )
44491           && ( flags == rhs.flags );
44492     }
44493 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties44494     bool operator!=( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
44495     {
44496       return !operator==( rhs );
44497     }
44498 #endif
44499 
44500 
44501 
44502   public:
44503     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
44504     VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {};
44505     VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {};
44506 
44507   };
44508   static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" );
44509   static_assert( std::is_standard_layout<SparseImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
44510 
44511   struct SparseImageMemoryRequirements
44512   {
44513 
44514 
44515 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44516     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties_ = {}, uint32_t imageMipTailFirstLod_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {}) VULKAN_HPP_NOEXCEPT
44517     : formatProperties( formatProperties_ ), imageMipTailFirstLod( imageMipTailFirstLod_ ), imageMipTailSize( imageMipTailSize_ ), imageMipTailOffset( imageMipTailOffset_ ), imageMipTailStride( imageMipTailStride_ )
44518     {}
44519 
44520     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44521 
SparseImageMemoryRequirementsVULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44522     SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
44523     {
44524       *this = rhs;
44525     }
44526 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44527 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44528     SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
44529     {
44530       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const *>( &rhs );
44531       return *this;
44532     }
44533 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44534     SparseImageMemoryRequirements & operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
44535     {
44536       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryRequirements ) );
44537       return *this;
44538     }
44539 
44540 
operator VkSparseImageMemoryRequirements const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44541     operator VkSparseImageMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT
44542     {
44543       return *reinterpret_cast<const VkSparseImageMemoryRequirements*>( this );
44544     }
44545 
operator VkSparseImageMemoryRequirements&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44546     operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
44547     {
44548       return *reinterpret_cast<VkSparseImageMemoryRequirements*>( this );
44549     }
44550 
44551 
44552 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44553     auto operator<=>( SparseImageMemoryRequirements const& ) const = default;
44554 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44555     bool operator==( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
44556     {
44557       return ( formatProperties == rhs.formatProperties )
44558           && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod )
44559           && ( imageMipTailSize == rhs.imageMipTailSize )
44560           && ( imageMipTailOffset == rhs.imageMipTailOffset )
44561           && ( imageMipTailStride == rhs.imageMipTailStride );
44562     }
44563 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements44564     bool operator!=( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
44565     {
44566       return !operator==( rhs );
44567     }
44568 #endif
44569 
44570 
44571 
44572   public:
44573     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {};
44574     uint32_t imageMipTailFirstLod = {};
44575     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {};
44576     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {};
44577     VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {};
44578 
44579   };
44580   static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" );
44581   static_assert( std::is_standard_layout<SparseImageMemoryRequirements>::value, "struct wrapper is not a standard layout!" );
44582 
44583   struct ImageSparseMemoryRequirementsInfo2
44584   {
44585     static const bool allowDuplicate = false;
44586     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2;
44587 
44588 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244589     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT
44590     : image( image_ )
44591     {}
44592 
44593     VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44594 
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244595     ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44596     {
44597       *this = rhs;
44598     }
44599 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44600 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244601     ImageSparseMemoryRequirementsInfo2 & operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44602     {
44603       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const *>( &rhs );
44604       return *this;
44605     }
44606 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244607     ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
44608     {
44609       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSparseMemoryRequirementsInfo2 ) );
44610       return *this;
44611     }
44612 
setPNextVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244613     ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44614     {
44615       pNext = pNext_;
44616       return *this;
44617     }
44618 
setImageVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244619     ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
44620     {
44621       image = image_;
44622       return *this;
44623     }
44624 
44625 
operator VkImageSparseMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244626     operator VkImageSparseMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT
44627     {
44628       return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( this );
44629     }
44630 
operator VkImageSparseMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244631     operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
44632     {
44633       return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>( this );
44634     }
44635 
44636 
44637 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44638     auto operator<=>( ImageSparseMemoryRequirementsInfo2 const& ) const = default;
44639 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244640     bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44641     {
44642       return ( sType == rhs.sType )
44643           && ( pNext == rhs.pNext )
44644           && ( image == rhs.image );
44645     }
44646 
operator !=VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo244647     bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44648     {
44649       return !operator==( rhs );
44650     }
44651 #endif
44652 
44653 
44654 
44655   public:
44656     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
44657     const void* pNext = {};
44658     VULKAN_HPP_NAMESPACE::Image image = {};
44659 
44660   };
44661   static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
44662   static_assert( std::is_standard_layout<ImageSparseMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
44663 
44664   template <>
44665   struct CppType<StructureType, StructureType::eImageSparseMemoryRequirementsInfo2>
44666   {
44667     using Type = ImageSparseMemoryRequirementsInfo2;
44668   };
44669   using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
44670 
44671   struct SparseImageMemoryRequirements2
44672   {
44673     static const bool allowDuplicate = false;
44674     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2;
44675 
44676 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244677     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2(VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT
44678     : memoryRequirements( memoryRequirements_ )
44679     {}
44680 
44681     VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44682 
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244683     SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
44684     {
44685       *this = rhs;
44686     }
44687 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44688 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244689     SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
44690     {
44691       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const *>( &rhs );
44692       return *this;
44693     }
44694 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244695     SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
44696     {
44697       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageMemoryRequirements2 ) );
44698       return *this;
44699     }
44700 
44701 
operator VkSparseImageMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244702     operator VkSparseImageMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT
44703     {
44704       return *reinterpret_cast<const VkSparseImageMemoryRequirements2*>( this );
44705     }
44706 
operator VkSparseImageMemoryRequirements2&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244707     operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
44708     {
44709       return *reinterpret_cast<VkSparseImageMemoryRequirements2*>( this );
44710     }
44711 
44712 
44713 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44714     auto operator<=>( SparseImageMemoryRequirements2 const& ) const = default;
44715 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244716     bool operator==( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44717     {
44718       return ( sType == rhs.sType )
44719           && ( pNext == rhs.pNext )
44720           && ( memoryRequirements == rhs.memoryRequirements );
44721     }
44722 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements244723     bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT
44724     {
44725       return !operator==( rhs );
44726     }
44727 #endif
44728 
44729 
44730 
44731   public:
44732     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2;
44733     void* pNext = {};
44734     VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {};
44735 
44736   };
44737   static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" );
44738   static_assert( std::is_standard_layout<SparseImageMemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
44739 
44740   template <>
44741   struct CppType<StructureType, StructureType::eSparseImageMemoryRequirements2>
44742   {
44743     using Type = SparseImageMemoryRequirements2;
44744   };
44745   using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
44746 
44747   struct SubresourceLayout
44748   {
44749 
44750 
44751 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout44752     VULKAN_HPP_CONSTEXPR SubresourceLayout(VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {}) VULKAN_HPP_NOEXCEPT
44753     : offset( offset_ ), size( size_ ), rowPitch( rowPitch_ ), arrayPitch( arrayPitch_ ), depthPitch( depthPitch_ )
44754     {}
44755 
44756     VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44757 
SubresourceLayoutVULKAN_HPP_NAMESPACE::SubresourceLayout44758     SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
44759     {
44760       *this = rhs;
44761     }
44762 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44763 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout44764     SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
44765     {
44766       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout const *>( &rhs );
44767       return *this;
44768     }
44769 
operator =VULKAN_HPP_NAMESPACE::SubresourceLayout44770     SubresourceLayout & operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
44771     {
44772       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubresourceLayout ) );
44773       return *this;
44774     }
44775 
44776 
operator VkSubresourceLayout const&VULKAN_HPP_NAMESPACE::SubresourceLayout44777     operator VkSubresourceLayout const&() const VULKAN_HPP_NOEXCEPT
44778     {
44779       return *reinterpret_cast<const VkSubresourceLayout*>( this );
44780     }
44781 
operator VkSubresourceLayout&VULKAN_HPP_NAMESPACE::SubresourceLayout44782     operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
44783     {
44784       return *reinterpret_cast<VkSubresourceLayout*>( this );
44785     }
44786 
44787 
44788 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44789     auto operator<=>( SubresourceLayout const& ) const = default;
44790 #else
operator ==VULKAN_HPP_NAMESPACE::SubresourceLayout44791     bool operator==( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
44792     {
44793       return ( offset == rhs.offset )
44794           && ( size == rhs.size )
44795           && ( rowPitch == rhs.rowPitch )
44796           && ( arrayPitch == rhs.arrayPitch )
44797           && ( depthPitch == rhs.depthPitch );
44798     }
44799 
operator !=VULKAN_HPP_NAMESPACE::SubresourceLayout44800     bool operator!=( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT
44801     {
44802       return !operator==( rhs );
44803     }
44804 #endif
44805 
44806 
44807 
44808   public:
44809     VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
44810     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
44811     VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {};
44812     VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {};
44813     VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {};
44814 
44815   };
44816   static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" );
44817   static_assert( std::is_standard_layout<SubresourceLayout>::value, "struct wrapper is not a standard layout!" );
44818 
44819   struct ImageViewAddressPropertiesNVX
44820   {
44821     static const bool allowDuplicate = false;
44822     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX;
44823 
44824 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44825     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT
44826     : deviceAddress( deviceAddress_ ), size( size_ )
44827     {}
44828 
44829     VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44830 
ImageViewAddressPropertiesNVXVULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44831     ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44832     {
44833       *this = rhs;
44834     }
44835 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44836 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44837     ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44838     {
44839       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const *>( &rhs );
44840       return *this;
44841     }
44842 
operator =VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44843     ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44844     {
44845       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewAddressPropertiesNVX ) );
44846       return *this;
44847     }
44848 
44849 
operator VkImageViewAddressPropertiesNVX const&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44850     operator VkImageViewAddressPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
44851     {
44852       return *reinterpret_cast<const VkImageViewAddressPropertiesNVX*>( this );
44853     }
44854 
operator VkImageViewAddressPropertiesNVX&VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44855     operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
44856     {
44857       return *reinterpret_cast<VkImageViewAddressPropertiesNVX*>( this );
44858     }
44859 
44860 
44861 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44862     auto operator<=>( ImageViewAddressPropertiesNVX const& ) const = default;
44863 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44864     bool operator==( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44865     {
44866       return ( sType == rhs.sType )
44867           && ( pNext == rhs.pNext )
44868           && ( deviceAddress == rhs.deviceAddress )
44869           && ( size == rhs.size );
44870     }
44871 
operator !=VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX44872     bool operator!=( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44873     {
44874       return !operator==( rhs );
44875     }
44876 #endif
44877 
44878 
44879 
44880   public:
44881     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX;
44882     void* pNext = {};
44883     VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
44884     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
44885 
44886   };
44887   static_assert( sizeof( ImageViewAddressPropertiesNVX ) == sizeof( VkImageViewAddressPropertiesNVX ), "struct and wrapper have different size!" );
44888   static_assert( std::is_standard_layout<ImageViewAddressPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
44889 
44890   template <>
44891   struct CppType<StructureType, StructureType::eImageViewAddressPropertiesNVX>
44892   {
44893     using Type = ImageViewAddressPropertiesNVX;
44894   };
44895 
44896   struct ImageViewHandleInfoNVX
44897   {
44898     static const bool allowDuplicate = false;
44899     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX;
44900 
44901 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44902     VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX(VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}) VULKAN_HPP_NOEXCEPT
44903     : imageView( imageView_ ), descriptorType( descriptorType_ ), sampler( sampler_ )
44904     {}
44905 
44906     VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
44907 
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44908     ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44909     {
44910       *this = rhs;
44911     }
44912 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
44913 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44914     ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44915     {
44916       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const *>( &rhs );
44917       return *this;
44918     }
44919 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44920     ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
44921     {
44922       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewHandleInfoNVX ) );
44923       return *this;
44924     }
44925 
setPNextVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44926     ImageViewHandleInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
44927     {
44928       pNext = pNext_;
44929       return *this;
44930     }
44931 
setImageViewVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44932     ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
44933     {
44934       imageView = imageView_;
44935       return *this;
44936     }
44937 
setDescriptorTypeVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44938     ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
44939     {
44940       descriptorType = descriptorType_;
44941       return *this;
44942     }
44943 
setSamplerVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44944     ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
44945     {
44946       sampler = sampler_;
44947       return *this;
44948     }
44949 
44950 
operator VkImageViewHandleInfoNVX const&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44951     operator VkImageViewHandleInfoNVX const&() const VULKAN_HPP_NOEXCEPT
44952     {
44953       return *reinterpret_cast<const VkImageViewHandleInfoNVX*>( this );
44954     }
44955 
operator VkImageViewHandleInfoNVX&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44956     operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
44957     {
44958       return *reinterpret_cast<VkImageViewHandleInfoNVX*>( this );
44959     }
44960 
44961 
44962 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
44963     auto operator<=>( ImageViewHandleInfoNVX const& ) const = default;
44964 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44965     bool operator==( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44966     {
44967       return ( sType == rhs.sType )
44968           && ( pNext == rhs.pNext )
44969           && ( imageView == rhs.imageView )
44970           && ( descriptorType == rhs.descriptorType )
44971           && ( sampler == rhs.sampler );
44972     }
44973 
operator !=VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX44974     bool operator!=( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
44975     {
44976       return !operator==( rhs );
44977     }
44978 #endif
44979 
44980 
44981 
44982   public:
44983     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX;
44984     const void* pNext = {};
44985     VULKAN_HPP_NAMESPACE::ImageView imageView = {};
44986     VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
44987     VULKAN_HPP_NAMESPACE::Sampler sampler = {};
44988 
44989   };
44990   static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" );
44991   static_assert( std::is_standard_layout<ImageViewHandleInfoNVX>::value, "struct wrapper is not a standard layout!" );
44992 
44993   template <>
44994   struct CppType<StructureType, StructureType::eImageViewHandleInfoNVX>
44995   {
44996     using Type = ImageViewHandleInfoNVX;
44997   };
44998 
44999 #ifdef VK_USE_PLATFORM_ANDROID_KHR
45000   struct MemoryGetAndroidHardwareBufferInfoANDROID
45001   {
45002     static const bool allowDuplicate = false;
45003     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
45004 
45005 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45006     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT
45007     : memory( memory_ )
45008     {}
45009 
45010     VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45011 
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45012     MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
45013     {
45014       *this = rhs;
45015     }
45016 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45017 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45018     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
45019     {
45020       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs );
45021       return *this;
45022     }
45023 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45024     MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
45025     {
45026       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) );
45027       return *this;
45028     }
45029 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45030     MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45031     {
45032       pNext = pNext_;
45033       return *this;
45034     }
45035 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45036     MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
45037     {
45038       memory = memory_;
45039       return *this;
45040     }
45041 
45042 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45043     operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
45044     {
45045       return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
45046     }
45047 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45048     operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
45049     {
45050       return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
45051     }
45052 
45053 
45054 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45055     auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const& ) const = default;
45056 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45057     bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
45058     {
45059       return ( sType == rhs.sType )
45060           && ( pNext == rhs.pNext )
45061           && ( memory == rhs.memory );
45062     }
45063 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID45064     bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
45065     {
45066       return !operator==( rhs );
45067     }
45068 #endif
45069 
45070 
45071 
45072   public:
45073     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
45074     const void* pNext = {};
45075     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
45076 
45077   };
45078   static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
45079   static_assert( std::is_standard_layout<MemoryGetAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
45080 
45081   template <>
45082   struct CppType<StructureType, StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID>
45083   {
45084     using Type = MemoryGetAndroidHardwareBufferInfoANDROID;
45085   };
45086 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
45087 
45088   struct MemoryGetFdInfoKHR
45089   {
45090     static const bool allowDuplicate = false;
45091     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR;
45092 
45093 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45094     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
45095     : memory( memory_ ), handleType( handleType_ )
45096     {}
45097 
45098     VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45099 
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45100     MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45101     {
45102       *this = rhs;
45103     }
45104 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45105 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45106     MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45107     {
45108       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const *>( &rhs );
45109       return *this;
45110     }
45111 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45112     MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45113     {
45114       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryGetFdInfoKHR ) );
45115       return *this;
45116     }
45117 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45118     MemoryGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45119     {
45120       pNext = pNext_;
45121       return *this;
45122     }
45123 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45124     MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
45125     {
45126       memory = memory_;
45127       return *this;
45128     }
45129 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45130     MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45131     {
45132       handleType = handleType_;
45133       return *this;
45134     }
45135 
45136 
operator VkMemoryGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45137     operator VkMemoryGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45138     {
45139       return *reinterpret_cast<const VkMemoryGetFdInfoKHR*>( this );
45140     }
45141 
operator VkMemoryGetFdInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45142     operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
45143     {
45144       return *reinterpret_cast<VkMemoryGetFdInfoKHR*>( this );
45145     }
45146 
45147 
45148 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45149     auto operator<=>( MemoryGetFdInfoKHR const& ) const = default;
45150 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45151     bool operator==( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45152     {
45153       return ( sType == rhs.sType )
45154           && ( pNext == rhs.pNext )
45155           && ( memory == rhs.memory )
45156           && ( handleType == rhs.handleType );
45157     }
45158 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR45159     bool operator!=( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45160     {
45161       return !operator==( rhs );
45162     }
45163 #endif
45164 
45165 
45166 
45167   public:
45168     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR;
45169     const void* pNext = {};
45170     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
45171     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
45172 
45173   };
45174   static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" );
45175   static_assert( std::is_standard_layout<MemoryGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
45176 
45177   template <>
45178   struct CppType<StructureType, StructureType::eMemoryGetFdInfoKHR>
45179   {
45180     using Type = MemoryGetFdInfoKHR;
45181   };
45182 
45183   struct MemoryFdPropertiesKHR
45184   {
45185     static const bool allowDuplicate = false;
45186     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR;
45187 
45188 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45189     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
45190     : memoryTypeBits( memoryTypeBits_ )
45191     {}
45192 
45193     VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45194 
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45195     MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45196     {
45197       *this = rhs;
45198     }
45199 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45200 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45201     MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45202     {
45203       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const *>( &rhs );
45204       return *this;
45205     }
45206 
operator =VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45207     MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45208     {
45209       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryFdPropertiesKHR ) );
45210       return *this;
45211     }
45212 
45213 
operator VkMemoryFdPropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45214     operator VkMemoryFdPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
45215     {
45216       return *reinterpret_cast<const VkMemoryFdPropertiesKHR*>( this );
45217     }
45218 
operator VkMemoryFdPropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45219     operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
45220     {
45221       return *reinterpret_cast<VkMemoryFdPropertiesKHR*>( this );
45222     }
45223 
45224 
45225 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45226     auto operator<=>( MemoryFdPropertiesKHR const& ) const = default;
45227 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45228     bool operator==( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45229     {
45230       return ( sType == rhs.sType )
45231           && ( pNext == rhs.pNext )
45232           && ( memoryTypeBits == rhs.memoryTypeBits );
45233     }
45234 
operator !=VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR45235     bool operator!=( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45236     {
45237       return !operator==( rhs );
45238     }
45239 #endif
45240 
45241 
45242 
45243   public:
45244     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR;
45245     void* pNext = {};
45246     uint32_t memoryTypeBits = {};
45247 
45248   };
45249   static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" );
45250   static_assert( std::is_standard_layout<MemoryFdPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
45251 
45252   template <>
45253   struct CppType<StructureType, StructureType::eMemoryFdPropertiesKHR>
45254   {
45255     using Type = MemoryFdPropertiesKHR;
45256   };
45257 
45258   struct MemoryHostPointerPropertiesEXT
45259   {
45260     static const bool allowDuplicate = false;
45261     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT;
45262 
45263 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45264     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
45265     : memoryTypeBits( memoryTypeBits_ )
45266     {}
45267 
45268     VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45269 
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45270     MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45271     {
45272       *this = rhs;
45273     }
45274 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45275 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45276     MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45277     {
45278       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const *>( &rhs );
45279       return *this;
45280     }
45281 
operator =VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45282     MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
45283     {
45284       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryHostPointerPropertiesEXT ) );
45285       return *this;
45286     }
45287 
45288 
operator VkMemoryHostPointerPropertiesEXT const&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45289     operator VkMemoryHostPointerPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
45290     {
45291       return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT*>( this );
45292     }
45293 
operator VkMemoryHostPointerPropertiesEXT&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45294     operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
45295     {
45296       return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( this );
45297     }
45298 
45299 
45300 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45301     auto operator<=>( MemoryHostPointerPropertiesEXT const& ) const = default;
45302 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45303     bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45304     {
45305       return ( sType == rhs.sType )
45306           && ( pNext == rhs.pNext )
45307           && ( memoryTypeBits == rhs.memoryTypeBits );
45308     }
45309 
operator !=VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT45310     bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
45311     {
45312       return !operator==( rhs );
45313     }
45314 #endif
45315 
45316 
45317 
45318   public:
45319     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
45320     void* pNext = {};
45321     uint32_t memoryTypeBits = {};
45322 
45323   };
45324   static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" );
45325   static_assert( std::is_standard_layout<MemoryHostPointerPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
45326 
45327   template <>
45328   struct CppType<StructureType, StructureType::eMemoryHostPointerPropertiesEXT>
45329   {
45330     using Type = MemoryHostPointerPropertiesEXT;
45331   };
45332 
45333 #ifdef VK_USE_PLATFORM_WIN32_KHR
45334   struct MemoryGetWin32HandleInfoKHR
45335   {
45336     static const bool allowDuplicate = false;
45337     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR;
45338 
45339 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45340     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
45341     : memory( memory_ ), handleType( handleType_ )
45342     {}
45343 
45344     VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45345 
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45346     MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45347     {
45348       *this = rhs;
45349     }
45350 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45351 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45352     MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45353     {
45354       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const *>( &rhs );
45355       return *this;
45356     }
45357 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45358     MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45359     {
45360       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryGetWin32HandleInfoKHR ) );
45361       return *this;
45362     }
45363 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45364     MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45365     {
45366       pNext = pNext_;
45367       return *this;
45368     }
45369 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45370     MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
45371     {
45372       memory = memory_;
45373       return *this;
45374     }
45375 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45376     MemoryGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
45377     {
45378       handleType = handleType_;
45379       return *this;
45380     }
45381 
45382 
operator VkMemoryGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45383     operator VkMemoryGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45384     {
45385       return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( this );
45386     }
45387 
operator VkMemoryGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45388     operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
45389     {
45390       return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>( this );
45391     }
45392 
45393 
45394 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45395     auto operator<=>( MemoryGetWin32HandleInfoKHR const& ) const = default;
45396 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45397     bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45398     {
45399       return ( sType == rhs.sType )
45400           && ( pNext == rhs.pNext )
45401           && ( memory == rhs.memory )
45402           && ( handleType == rhs.handleType );
45403     }
45404 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR45405     bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45406     {
45407       return !operator==( rhs );
45408     }
45409 #endif
45410 
45411 
45412 
45413   public:
45414     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
45415     const void* pNext = {};
45416     VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
45417     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
45418 
45419   };
45420   static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
45421   static_assert( std::is_standard_layout<MemoryGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
45422 
45423   template <>
45424   struct CppType<StructureType, StructureType::eMemoryGetWin32HandleInfoKHR>
45425   {
45426     using Type = MemoryGetWin32HandleInfoKHR;
45427   };
45428 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
45429 
45430 #ifdef VK_USE_PLATFORM_WIN32_KHR
45431   struct MemoryWin32HandlePropertiesKHR
45432   {
45433     static const bool allowDuplicate = false;
45434     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR;
45435 
45436 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45437     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT
45438     : memoryTypeBits( memoryTypeBits_ )
45439     {}
45440 
45441     VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45442 
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45443     MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45444     {
45445       *this = rhs;
45446     }
45447 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45448 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45449     MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45450     {
45451       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const *>( &rhs );
45452       return *this;
45453     }
45454 
operator =VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45455     MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45456     {
45457       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryWin32HandlePropertiesKHR ) );
45458       return *this;
45459     }
45460 
45461 
operator VkMemoryWin32HandlePropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45462     operator VkMemoryWin32HandlePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
45463     {
45464       return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR*>( this );
45465     }
45466 
operator VkMemoryWin32HandlePropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45467     operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
45468     {
45469       return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( this );
45470     }
45471 
45472 
45473 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45474     auto operator<=>( MemoryWin32HandlePropertiesKHR const& ) const = default;
45475 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45476     bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45477     {
45478       return ( sType == rhs.sType )
45479           && ( pNext == rhs.pNext )
45480           && ( memoryTypeBits == rhs.memoryTypeBits );
45481     }
45482 
operator !=VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR45483     bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45484     {
45485       return !operator==( rhs );
45486     }
45487 #endif
45488 
45489 
45490 
45491   public:
45492     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
45493     void* pNext = {};
45494     uint32_t memoryTypeBits = {};
45495 
45496   };
45497   static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" );
45498   static_assert( std::is_standard_layout<MemoryWin32HandlePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
45499 
45500   template <>
45501   struct CppType<StructureType, StructureType::eMemoryWin32HandlePropertiesKHR>
45502   {
45503     using Type = MemoryWin32HandlePropertiesKHR;
45504   };
45505 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
45506 
45507   struct PastPresentationTimingGOOGLE
45508   {
45509 
45510 
45511 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45512     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}, uint64_t actualPresentTime_ = {}, uint64_t earliestPresentTime_ = {}, uint64_t presentMargin_ = {}) VULKAN_HPP_NOEXCEPT
45513     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ ), actualPresentTime( actualPresentTime_ ), earliestPresentTime( earliestPresentTime_ ), presentMargin( presentMargin_ )
45514     {}
45515 
45516     VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45517 
PastPresentationTimingGOOGLEVULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45518     PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45519     {
45520       *this = rhs;
45521     }
45522 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45523 
operator =VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45524     PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45525     {
45526       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const *>( &rhs );
45527       return *this;
45528     }
45529 
operator =VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45530     PastPresentationTimingGOOGLE & operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
45531     {
45532       memcpy( static_cast<void *>( this ), &rhs, sizeof( PastPresentationTimingGOOGLE ) );
45533       return *this;
45534     }
45535 
45536 
operator VkPastPresentationTimingGOOGLE const&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45537     operator VkPastPresentationTimingGOOGLE const&() const VULKAN_HPP_NOEXCEPT
45538     {
45539       return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>( this );
45540     }
45541 
operator VkPastPresentationTimingGOOGLE&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45542     operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
45543     {
45544       return *reinterpret_cast<VkPastPresentationTimingGOOGLE*>( this );
45545     }
45546 
45547 
45548 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45549     auto operator<=>( PastPresentationTimingGOOGLE const& ) const = default;
45550 #else
operator ==VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45551     bool operator==( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
45552     {
45553       return ( presentID == rhs.presentID )
45554           && ( desiredPresentTime == rhs.desiredPresentTime )
45555           && ( actualPresentTime == rhs.actualPresentTime )
45556           && ( earliestPresentTime == rhs.earliestPresentTime )
45557           && ( presentMargin == rhs.presentMargin );
45558     }
45559 
operator !=VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE45560     bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
45561     {
45562       return !operator==( rhs );
45563     }
45564 #endif
45565 
45566 
45567 
45568   public:
45569     uint32_t presentID = {};
45570     uint64_t desiredPresentTime = {};
45571     uint64_t actualPresentTime = {};
45572     uint64_t earliestPresentTime = {};
45573     uint64_t presentMargin = {};
45574 
45575   };
45576   static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" );
45577   static_assert( std::is_standard_layout<PastPresentationTimingGOOGLE>::value, "struct wrapper is not a standard layout!" );
45578 
45579   union PerformanceValueDataINTEL
45580   {
PerformanceValueDataINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)45581     PerformanceValueDataINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const& rhs ) VULKAN_HPP_NOEXCEPT
45582     {
45583       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
45584     }
45585 
PerformanceValueDataINTEL(uint32_t value32_={} )45586     PerformanceValueDataINTEL( uint32_t value32_ = {} )
45587       : value32( value32_ )
45588     {}
45589 
PerformanceValueDataINTEL(uint64_t value64_)45590     PerformanceValueDataINTEL( uint64_t value64_ )
45591       : value64( value64_ )
45592     {}
45593 
PerformanceValueDataINTEL(float valueFloat_)45594     PerformanceValueDataINTEL( float valueFloat_ )
45595       : valueFloat( valueFloat_ )
45596     {}
45597 
PerformanceValueDataINTEL(const char * valueString_)45598     PerformanceValueDataINTEL( const char* valueString_ )
45599       : valueString( valueString_ )
45600     {}
45601 
setValue32(uint32_t value32_)45602     PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT
45603     {
45604       value32 = value32_;
45605       return *this;
45606     }
45607 
setValue64(uint64_t value64_)45608     PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT
45609     {
45610       value64 = value64_;
45611       return *this;
45612     }
45613 
setValueFloat(float valueFloat_)45614     PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT
45615     {
45616       valueFloat = valueFloat_;
45617       return *this;
45618     }
45619 
setValueBool(VULKAN_HPP_NAMESPACE::Bool32 valueBool_)45620     PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT
45621     {
45622       valueBool = valueBool_;
45623       return *this;
45624     }
45625 
setValueString(const char * valueString_)45626     PerformanceValueDataINTEL & setValueString( const char* valueString_ ) VULKAN_HPP_NOEXCEPT
45627     {
45628       valueString = valueString_;
45629       return *this;
45630     }
45631 
operator =(VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs)45632     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45633     {
45634       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) );
45635       return *this;
45636     }
45637 
operator VkPerformanceValueDataINTEL const&() const45638     operator VkPerformanceValueDataINTEL const&() const
45639     {
45640       return *reinterpret_cast<const VkPerformanceValueDataINTEL*>(this);
45641     }
45642 
operator VkPerformanceValueDataINTEL&()45643     operator VkPerformanceValueDataINTEL &()
45644     {
45645       return *reinterpret_cast<VkPerformanceValueDataINTEL*>(this);
45646     }
45647 
45648 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
45649     uint32_t value32;
45650     uint64_t value64;
45651     float valueFloat;
45652     VULKAN_HPP_NAMESPACE::Bool32 valueBool;
45653     const char* valueString;
45654 #else
45655     uint32_t value32;
45656     uint64_t value64;
45657     float valueFloat;
45658     VkBool32 valueBool;
45659     const char* valueString;
45660 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
45661   };
45662 
45663   struct PerformanceValueINTEL
45664   {
45665 
45666 
45667 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45668     PerformanceValueINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {}) VULKAN_HPP_NOEXCEPT
45669     : type( type_ ), data( data_ )
45670     {}
45671 
45672     PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45673 
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45674     PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45675     {
45676       *this = rhs;
45677     }
45678 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45679 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45680     PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45681     {
45682       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL const *>( &rhs );
45683       return *this;
45684     }
45685 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45686     PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
45687     {
45688       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceValueINTEL ) );
45689       return *this;
45690     }
45691 
setTypeVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45692     PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
45693     {
45694       type = type_;
45695       return *this;
45696     }
45697 
setDataVULKAN_HPP_NAMESPACE::PerformanceValueINTEL45698     PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT
45699     {
45700       data = data_;
45701       return *this;
45702     }
45703 
45704 
operator VkPerformanceValueINTEL const&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45705     operator VkPerformanceValueINTEL const&() const VULKAN_HPP_NOEXCEPT
45706     {
45707       return *reinterpret_cast<const VkPerformanceValueINTEL*>( this );
45708     }
45709 
operator VkPerformanceValueINTEL&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL45710     operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
45711     {
45712       return *reinterpret_cast<VkPerformanceValueINTEL*>( this );
45713     }
45714 
45715 
45716 
45717 
45718   public:
45719     VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32;
45720     VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {};
45721 
45722   };
45723   static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" );
45724   static_assert( std::is_standard_layout<PerformanceValueINTEL>::value, "struct wrapper is not a standard layout!" );
45725 
45726   struct PipelineExecutableInfoKHR
45727   {
45728     static const bool allowDuplicate = false;
45729     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR;
45730 
45731 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45732     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, uint32_t executableIndex_ = {}) VULKAN_HPP_NOEXCEPT
45733     : pipeline( pipeline_ ), executableIndex( executableIndex_ )
45734     {}
45735 
45736     VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45737 
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45738     PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45739     {
45740       *this = rhs;
45741     }
45742 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45743 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45744     PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45745     {
45746       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const *>( &rhs );
45747       return *this;
45748     }
45749 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45750     PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45751     {
45752       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutableInfoKHR ) );
45753       return *this;
45754     }
45755 
setPNextVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45756     PipelineExecutableInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45757     {
45758       pNext = pNext_;
45759       return *this;
45760     }
45761 
setPipelineVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45762     PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
45763     {
45764       pipeline = pipeline_;
45765       return *this;
45766     }
45767 
setExecutableIndexVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45768     PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT
45769     {
45770       executableIndex = executableIndex_;
45771       return *this;
45772     }
45773 
45774 
operator VkPipelineExecutableInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45775     operator VkPipelineExecutableInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45776     {
45777       return *reinterpret_cast<const VkPipelineExecutableInfoKHR*>( this );
45778     }
45779 
operator VkPipelineExecutableInfoKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45780     operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
45781     {
45782       return *reinterpret_cast<VkPipelineExecutableInfoKHR*>( this );
45783     }
45784 
45785 
45786 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45787     auto operator<=>( PipelineExecutableInfoKHR const& ) const = default;
45788 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45789     bool operator==( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45790     {
45791       return ( sType == rhs.sType )
45792           && ( pNext == rhs.pNext )
45793           && ( pipeline == rhs.pipeline )
45794           && ( executableIndex == rhs.executableIndex );
45795     }
45796 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR45797     bool operator!=( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45798     {
45799       return !operator==( rhs );
45800     }
45801 #endif
45802 
45803 
45804 
45805   public:
45806     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR;
45807     const void* pNext = {};
45808     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
45809     uint32_t executableIndex = {};
45810 
45811   };
45812   static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "struct and wrapper have different size!" );
45813   static_assert( std::is_standard_layout<PipelineExecutableInfoKHR>::value, "struct wrapper is not a standard layout!" );
45814 
45815   template <>
45816   struct CppType<StructureType, StructureType::ePipelineExecutableInfoKHR>
45817   {
45818     using Type = PipelineExecutableInfoKHR;
45819   };
45820 
45821   struct PipelineExecutableInternalRepresentationKHR
45822   {
45823     static const bool allowDuplicate = false;
45824     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR;
45825 
45826 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45827     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR(std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {}, VULKAN_HPP_NAMESPACE::Bool32 isText_ = {}, size_t dataSize_ = {}, void* pData_ = {}) VULKAN_HPP_NOEXCEPT
45828     : name( name_ ), description( description_ ), isText( isText_ ), dataSize( dataSize_ ), pData( pData_ )
45829     {}
45830 
45831     VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45832 
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45833     PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45834     {
45835       *this = rhs;
45836     }
45837 
45838 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
45839     template <typename T>
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45840     PipelineExecutableInternalRepresentationKHR( std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_, VULKAN_HPP_NAMESPACE::Bool32 isText_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<T> const & data_ )
45841     : name( name_ ), description( description_ ), isText( isText_ ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() )
45842     {}
45843 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
45844 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45845 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45846     PipelineExecutableInternalRepresentationKHR & operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45847     {
45848       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const *>( &rhs );
45849       return *this;
45850     }
45851 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45852     PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45853     {
45854       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutableInternalRepresentationKHR ) );
45855       return *this;
45856     }
45857 
45858 
operator VkPipelineExecutableInternalRepresentationKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45859     operator VkPipelineExecutableInternalRepresentationKHR const&() const VULKAN_HPP_NOEXCEPT
45860     {
45861       return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR*>( this );
45862     }
45863 
operator VkPipelineExecutableInternalRepresentationKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45864     operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
45865     {
45866       return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( this );
45867     }
45868 
45869 
45870 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45871     auto operator<=>( PipelineExecutableInternalRepresentationKHR const& ) const = default;
45872 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45873     bool operator==( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45874     {
45875       return ( sType == rhs.sType )
45876           && ( pNext == rhs.pNext )
45877           && ( name == rhs.name )
45878           && ( description == rhs.description )
45879           && ( isText == rhs.isText )
45880           && ( dataSize == rhs.dataSize )
45881           && ( pData == rhs.pData );
45882     }
45883 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR45884     bool operator!=( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45885     {
45886       return !operator==( rhs );
45887     }
45888 #endif
45889 
45890 
45891 
45892   public:
45893     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR;
45894     void* pNext = {};
45895     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
45896     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
45897     VULKAN_HPP_NAMESPACE::Bool32 isText = {};
45898     size_t dataSize = {};
45899     void* pData = {};
45900 
45901   };
45902   static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "struct and wrapper have different size!" );
45903   static_assert( std::is_standard_layout<PipelineExecutableInternalRepresentationKHR>::value, "struct wrapper is not a standard layout!" );
45904 
45905   template <>
45906   struct CppType<StructureType, StructureType::ePipelineExecutableInternalRepresentationKHR>
45907   {
45908     using Type = PipelineExecutableInternalRepresentationKHR;
45909   };
45910 
45911   struct PipelineInfoKHR
45912   {
45913     static const bool allowDuplicate = false;
45914     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR;
45915 
45916 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR45917     VULKAN_HPP_CONSTEXPR PipelineInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}) VULKAN_HPP_NOEXCEPT
45918     : pipeline( pipeline_ )
45919     {}
45920 
45921     VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
45922 
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR45923     PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45924     {
45925       *this = rhs;
45926     }
45927 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
45928 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR45929     PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45930     {
45931       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInfoKHR const *>( &rhs );
45932       return *this;
45933     }
45934 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR45935     PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
45936     {
45937       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineInfoKHR ) );
45938       return *this;
45939     }
45940 
setPNextVULKAN_HPP_NAMESPACE::PipelineInfoKHR45941     PipelineInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
45942     {
45943       pNext = pNext_;
45944       return *this;
45945     }
45946 
setPipelineVULKAN_HPP_NAMESPACE::PipelineInfoKHR45947     PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
45948     {
45949       pipeline = pipeline_;
45950       return *this;
45951     }
45952 
45953 
operator VkPipelineInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineInfoKHR45954     operator VkPipelineInfoKHR const&() const VULKAN_HPP_NOEXCEPT
45955     {
45956       return *reinterpret_cast<const VkPipelineInfoKHR*>( this );
45957     }
45958 
operator VkPipelineInfoKHR&VULKAN_HPP_NAMESPACE::PipelineInfoKHR45959     operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
45960     {
45961       return *reinterpret_cast<VkPipelineInfoKHR*>( this );
45962     }
45963 
45964 
45965 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
45966     auto operator<=>( PipelineInfoKHR const& ) const = default;
45967 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineInfoKHR45968     bool operator==( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45969     {
45970       return ( sType == rhs.sType )
45971           && ( pNext == rhs.pNext )
45972           && ( pipeline == rhs.pipeline );
45973     }
45974 
operator !=VULKAN_HPP_NAMESPACE::PipelineInfoKHR45975     bool operator!=( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
45976     {
45977       return !operator==( rhs );
45978     }
45979 #endif
45980 
45981 
45982 
45983   public:
45984     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR;
45985     const void* pNext = {};
45986     VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
45987 
45988   };
45989   static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" );
45990   static_assert( std::is_standard_layout<PipelineInfoKHR>::value, "struct wrapper is not a standard layout!" );
45991 
45992   template <>
45993   struct CppType<StructureType, StructureType::ePipelineInfoKHR>
45994   {
45995     using Type = PipelineInfoKHR;
45996   };
45997 
45998   struct PipelineExecutablePropertiesKHR
45999   {
46000     static const bool allowDuplicate = false;
46001     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR;
46002 
46003 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46004     VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR(VULKAN_HPP_NAMESPACE::ShaderStageFlags stages_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {}, uint32_t subgroupSize_ = {}) VULKAN_HPP_NOEXCEPT
46005     : stages( stages_ ), name( name_ ), description( description_ ), subgroupSize( subgroupSize_ )
46006     {}
46007 
46008     VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46009 
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46010     PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46011     {
46012       *this = rhs;
46013     }
46014 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46015 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46016     PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46017     {
46018       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const *>( &rhs );
46019       return *this;
46020     }
46021 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46022     PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46023     {
46024       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutablePropertiesKHR ) );
46025       return *this;
46026     }
46027 
46028 
operator VkPipelineExecutablePropertiesKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46029     operator VkPipelineExecutablePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
46030     {
46031       return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR*>( this );
46032     }
46033 
operator VkPipelineExecutablePropertiesKHR&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46034     operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
46035     {
46036       return *reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( this );
46037     }
46038 
46039 
46040 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46041     auto operator<=>( PipelineExecutablePropertiesKHR const& ) const = default;
46042 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46043     bool operator==( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46044     {
46045       return ( sType == rhs.sType )
46046           && ( pNext == rhs.pNext )
46047           && ( stages == rhs.stages )
46048           && ( name == rhs.name )
46049           && ( description == rhs.description )
46050           && ( subgroupSize == rhs.subgroupSize );
46051     }
46052 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR46053     bool operator!=( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46054     {
46055       return !operator==( rhs );
46056     }
46057 #endif
46058 
46059 
46060 
46061   public:
46062     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR;
46063     void* pNext = {};
46064     VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {};
46065     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
46066     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
46067     uint32_t subgroupSize = {};
46068 
46069   };
46070   static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "struct and wrapper have different size!" );
46071   static_assert( std::is_standard_layout<PipelineExecutablePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
46072 
46073   template <>
46074   struct CppType<StructureType, StructureType::ePipelineExecutablePropertiesKHR>
46075   {
46076     using Type = PipelineExecutablePropertiesKHR;
46077   };
46078 
46079   union PipelineExecutableStatisticValueKHR
46080   {
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)46081     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const& rhs ) VULKAN_HPP_NOEXCEPT
46082     {
46083       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
46084     }
46085 
PipelineExecutableStatisticValueKHR(VULKAN_HPP_NAMESPACE::Bool32 b32_={} )46086     PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} )
46087       : b32( b32_ )
46088     {}
46089 
PipelineExecutableStatisticValueKHR(int64_t i64_)46090     PipelineExecutableStatisticValueKHR( int64_t i64_ )
46091       : i64( i64_ )
46092     {}
46093 
PipelineExecutableStatisticValueKHR(uint64_t u64_)46094     PipelineExecutableStatisticValueKHR( uint64_t u64_ )
46095       : u64( u64_ )
46096     {}
46097 
PipelineExecutableStatisticValueKHR(double f64_)46098     PipelineExecutableStatisticValueKHR( double f64_ )
46099       : f64( f64_ )
46100     {}
46101 
setB32(VULKAN_HPP_NAMESPACE::Bool32 b32_)46102     PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT
46103     {
46104       b32 = b32_;
46105       return *this;
46106     }
46107 
setI64(int64_t i64_)46108     PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT
46109     {
46110       i64 = i64_;
46111       return *this;
46112     }
46113 
setU64(uint64_t u64_)46114     PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT
46115     {
46116       u64 = u64_;
46117       return *this;
46118     }
46119 
setF64(double f64_)46120     PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT
46121     {
46122       f64 = f64_;
46123       return *this;
46124     }
46125 
operator =(VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs)46126     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46127     {
46128       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) );
46129       return *this;
46130     }
46131 
operator VkPipelineExecutableStatisticValueKHR const&() const46132     operator VkPipelineExecutableStatisticValueKHR const&() const
46133     {
46134       return *reinterpret_cast<const VkPipelineExecutableStatisticValueKHR*>(this);
46135     }
46136 
operator VkPipelineExecutableStatisticValueKHR&()46137     operator VkPipelineExecutableStatisticValueKHR &()
46138     {
46139       return *reinterpret_cast<VkPipelineExecutableStatisticValueKHR*>(this);
46140     }
46141 
46142 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
46143     VULKAN_HPP_NAMESPACE::Bool32 b32;
46144     int64_t i64;
46145     uint64_t u64;
46146     double f64;
46147 #else
46148     VkBool32 b32;
46149     int64_t i64;
46150     uint64_t u64;
46151     double f64;
46152 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
46153   };
46154 
46155   struct PipelineExecutableStatisticKHR
46156   {
46157     static const bool allowDuplicate = false;
46158     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR;
46159 
46160 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46161     PipelineExecutableStatisticKHR(std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {}, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {}) VULKAN_HPP_NOEXCEPT
46162     : name( name_ ), description( description_ ), format( format_ ), value( value_ )
46163     {}
46164 
46165     PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46166 
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46167     PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46168     {
46169       *this = rhs;
46170     }
46171 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46172 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46173     PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46174     {
46175       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR const *>( &rhs );
46176       return *this;
46177     }
46178 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46179     PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46180     {
46181       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineExecutableStatisticKHR ) );
46182       return *this;
46183     }
46184 
46185 
operator VkPipelineExecutableStatisticKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46186     operator VkPipelineExecutableStatisticKHR const&() const VULKAN_HPP_NOEXCEPT
46187     {
46188       return *reinterpret_cast<const VkPipelineExecutableStatisticKHR*>( this );
46189     }
46190 
operator VkPipelineExecutableStatisticKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR46191     operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
46192     {
46193       return *reinterpret_cast<VkPipelineExecutableStatisticKHR*>( this );
46194     }
46195 
46196 
46197 
46198 
46199   public:
46200     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR;
46201     void* pNext = {};
46202     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
46203     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
46204     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32;
46205     VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {};
46206 
46207   };
46208   static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "struct and wrapper have different size!" );
46209   static_assert( std::is_standard_layout<PipelineExecutableStatisticKHR>::value, "struct wrapper is not a standard layout!" );
46210 
46211   template <>
46212   struct CppType<StructureType, StructureType::ePipelineExecutableStatisticKHR>
46213   {
46214     using Type = PipelineExecutableStatisticKHR;
46215   };
46216 
46217   struct RefreshCycleDurationGOOGLE
46218   {
46219 
46220 
46221 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46222     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE(uint64_t refreshDuration_ = {}) VULKAN_HPP_NOEXCEPT
46223     : refreshDuration( refreshDuration_ )
46224     {}
46225 
46226     VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46227 
RefreshCycleDurationGOOGLEVULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46228     RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
46229     {
46230       *this = rhs;
46231     }
46232 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46233 
operator =VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46234     RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
46235     {
46236       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const *>( &rhs );
46237       return *this;
46238     }
46239 
operator =VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46240     RefreshCycleDurationGOOGLE & operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
46241     {
46242       memcpy( static_cast<void *>( this ), &rhs, sizeof( RefreshCycleDurationGOOGLE ) );
46243       return *this;
46244     }
46245 
46246 
operator VkRefreshCycleDurationGOOGLE const&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46247     operator VkRefreshCycleDurationGOOGLE const&() const VULKAN_HPP_NOEXCEPT
46248     {
46249       return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>( this );
46250     }
46251 
operator VkRefreshCycleDurationGOOGLE&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46252     operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
46253     {
46254       return *reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( this );
46255     }
46256 
46257 
46258 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46259     auto operator<=>( RefreshCycleDurationGOOGLE const& ) const = default;
46260 #else
operator ==VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46261     bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
46262     {
46263       return ( refreshDuration == rhs.refreshDuration );
46264     }
46265 
operator !=VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE46266     bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
46267     {
46268       return !operator==( rhs );
46269     }
46270 #endif
46271 
46272 
46273 
46274   public:
46275     uint64_t refreshDuration = {};
46276 
46277   };
46278   static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" );
46279   static_assert( std::is_standard_layout<RefreshCycleDurationGOOGLE>::value, "struct wrapper is not a standard layout!" );
46280 
46281   struct SemaphoreGetFdInfoKHR
46282   {
46283     static const bool allowDuplicate = false;
46284     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR;
46285 
46286 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46287     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
46288     : semaphore( semaphore_ ), handleType( handleType_ )
46289     {}
46290 
46291     VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46292 
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46293     SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46294     {
46295       *this = rhs;
46296     }
46297 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46298 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46299     SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46300     {
46301       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const *>( &rhs );
46302       return *this;
46303     }
46304 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46305     SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46306     {
46307       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreGetFdInfoKHR ) );
46308       return *this;
46309     }
46310 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46311     SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46312     {
46313       pNext = pNext_;
46314       return *this;
46315     }
46316 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46317     SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46318     {
46319       semaphore = semaphore_;
46320       return *this;
46321     }
46322 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46323     SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46324     {
46325       handleType = handleType_;
46326       return *this;
46327     }
46328 
46329 
operator VkSemaphoreGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46330     operator VkSemaphoreGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46331     {
46332       return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( this );
46333     }
46334 
operator VkSemaphoreGetFdInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46335     operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46336     {
46337       return *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>( this );
46338     }
46339 
46340 
46341 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46342     auto operator<=>( SemaphoreGetFdInfoKHR const& ) const = default;
46343 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46344     bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46345     {
46346       return ( sType == rhs.sType )
46347           && ( pNext == rhs.pNext )
46348           && ( semaphore == rhs.semaphore )
46349           && ( handleType == rhs.handleType );
46350     }
46351 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR46352     bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46353     {
46354       return !operator==( rhs );
46355     }
46356 #endif
46357 
46358 
46359 
46360   public:
46361     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
46362     const void* pNext = {};
46363     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46364     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46365 
46366   };
46367   static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" );
46368   static_assert( std::is_standard_layout<SemaphoreGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46369 
46370   template <>
46371   struct CppType<StructureType, StructureType::eSemaphoreGetFdInfoKHR>
46372   {
46373     using Type = SemaphoreGetFdInfoKHR;
46374   };
46375 
46376 #ifdef VK_USE_PLATFORM_WIN32_KHR
46377   struct SemaphoreGetWin32HandleInfoKHR
46378   {
46379     static const bool allowDuplicate = false;
46380     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
46381 
46382 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46383     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
46384     : semaphore( semaphore_ ), handleType( handleType_ )
46385     {}
46386 
46387     VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46388 
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46389     SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46390     {
46391       *this = rhs;
46392     }
46393 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46394 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46395     SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46396     {
46397       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const *>( &rhs );
46398       return *this;
46399     }
46400 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46401     SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46402     {
46403       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreGetWin32HandleInfoKHR ) );
46404       return *this;
46405     }
46406 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46407     SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46408     {
46409       pNext = pNext_;
46410       return *this;
46411     }
46412 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46413     SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46414     {
46415       semaphore = semaphore_;
46416       return *this;
46417     }
46418 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46419     SemaphoreGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46420     {
46421       handleType = handleType_;
46422       return *this;
46423     }
46424 
46425 
operator VkSemaphoreGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46426     operator VkSemaphoreGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46427     {
46428       return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( this );
46429     }
46430 
operator VkSemaphoreGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46431     operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46432     {
46433       return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>( this );
46434     }
46435 
46436 
46437 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46438     auto operator<=>( SemaphoreGetWin32HandleInfoKHR const& ) const = default;
46439 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46440     bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46441     {
46442       return ( sType == rhs.sType )
46443           && ( pNext == rhs.pNext )
46444           && ( semaphore == rhs.semaphore )
46445           && ( handleType == rhs.handleType );
46446     }
46447 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR46448     bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46449     {
46450       return !operator==( rhs );
46451     }
46452 #endif
46453 
46454 
46455 
46456   public:
46457     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
46458     const void* pNext = {};
46459     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46460     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46461 
46462   };
46463   static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46464   static_assert( std::is_standard_layout<SemaphoreGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46465 
46466   template <>
46467   struct CppType<StructureType, StructureType::eSemaphoreGetWin32HandleInfoKHR>
46468   {
46469     using Type = SemaphoreGetWin32HandleInfoKHR;
46470   };
46471 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46472 
46473   struct ImportFenceFdInfoKHR
46474   {
46475     static const bool allowDuplicate = false;
46476     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR;
46477 
46478 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46479     VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT
46480     : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
46481     {}
46482 
46483     VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46484 
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46485     ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46486     {
46487       *this = rhs;
46488     }
46489 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46490 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46491     ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46492     {
46493       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const *>( &rhs );
46494       return *this;
46495     }
46496 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46497     ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46498     {
46499       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportFenceFdInfoKHR ) );
46500       return *this;
46501     }
46502 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46503     ImportFenceFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46504     {
46505       pNext = pNext_;
46506       return *this;
46507     }
46508 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46509     ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
46510     {
46511       fence = fence_;
46512       return *this;
46513     }
46514 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46515     ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46516     {
46517       flags = flags_;
46518       return *this;
46519     }
46520 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46521     ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46522     {
46523       handleType = handleType_;
46524       return *this;
46525     }
46526 
setFdVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46527     ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
46528     {
46529       fd = fd_;
46530       return *this;
46531     }
46532 
46533 
operator VkImportFenceFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46534     operator VkImportFenceFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46535     {
46536       return *reinterpret_cast<const VkImportFenceFdInfoKHR*>( this );
46537     }
46538 
operator VkImportFenceFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46539     operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46540     {
46541       return *reinterpret_cast<VkImportFenceFdInfoKHR*>( this );
46542     }
46543 
46544 
46545 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46546     auto operator<=>( ImportFenceFdInfoKHR const& ) const = default;
46547 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46548     bool operator==( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46549     {
46550       return ( sType == rhs.sType )
46551           && ( pNext == rhs.pNext )
46552           && ( fence == rhs.fence )
46553           && ( flags == rhs.flags )
46554           && ( handleType == rhs.handleType )
46555           && ( fd == rhs.fd );
46556     }
46557 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR46558     bool operator!=( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46559     {
46560       return !operator==( rhs );
46561     }
46562 #endif
46563 
46564 
46565 
46566   public:
46567     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR;
46568     const void* pNext = {};
46569     VULKAN_HPP_NAMESPACE::Fence fence = {};
46570     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
46571     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
46572     int fd = {};
46573 
46574   };
46575   static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" );
46576   static_assert( std::is_standard_layout<ImportFenceFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46577 
46578   template <>
46579   struct CppType<StructureType, StructureType::eImportFenceFdInfoKHR>
46580   {
46581     using Type = ImportFenceFdInfoKHR;
46582   };
46583 
46584 #ifdef VK_USE_PLATFORM_WIN32_KHR
46585   struct ImportFenceWin32HandleInfoKHR
46586   {
46587     static const bool allowDuplicate = false;
46588     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR;
46589 
46590 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46591     VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
46592     : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
46593     {}
46594 
46595     VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46596 
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46597     ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46598     {
46599       *this = rhs;
46600     }
46601 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46602 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46603     ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46604     {
46605       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const *>( &rhs );
46606       return *this;
46607     }
46608 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46609     ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46610     {
46611       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportFenceWin32HandleInfoKHR ) );
46612       return *this;
46613     }
46614 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46615     ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46616     {
46617       pNext = pNext_;
46618       return *this;
46619     }
46620 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46621     ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
46622     {
46623       fence = fence_;
46624       return *this;
46625     }
46626 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46627     ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46628     {
46629       flags = flags_;
46630       return *this;
46631     }
46632 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46633     ImportFenceWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46634     {
46635       handleType = handleType_;
46636       return *this;
46637     }
46638 
setHandleVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46639     ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
46640     {
46641       handle = handle_;
46642       return *this;
46643     }
46644 
setNameVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46645     ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
46646     {
46647       name = name_;
46648       return *this;
46649     }
46650 
46651 
operator VkImportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46652     operator VkImportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46653     {
46654       return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( this );
46655     }
46656 
operator VkImportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46657     operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46658     {
46659       return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>( this );
46660     }
46661 
46662 
46663 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46664     auto operator<=>( ImportFenceWin32HandleInfoKHR const& ) const = default;
46665 #else
operator ==VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46666     bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46667     {
46668       return ( sType == rhs.sType )
46669           && ( pNext == rhs.pNext )
46670           && ( fence == rhs.fence )
46671           && ( flags == rhs.flags )
46672           && ( handleType == rhs.handleType )
46673           && ( handle == rhs.handle )
46674           && ( name == rhs.name );
46675     }
46676 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR46677     bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46678     {
46679       return !operator==( rhs );
46680     }
46681 #endif
46682 
46683 
46684 
46685   public:
46686     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
46687     const void* pNext = {};
46688     VULKAN_HPP_NAMESPACE::Fence fence = {};
46689     VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
46690     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
46691     HANDLE handle = {};
46692     LPCWSTR name = {};
46693 
46694   };
46695   static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46696   static_assert( std::is_standard_layout<ImportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46697 
46698   template <>
46699   struct CppType<StructureType, StructureType::eImportFenceWin32HandleInfoKHR>
46700   {
46701     using Type = ImportFenceWin32HandleInfoKHR;
46702   };
46703 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46704 
46705   struct ImportSemaphoreFdInfoKHR
46706   {
46707     static const bool allowDuplicate = false;
46708     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR;
46709 
46710 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46711     VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT
46712     : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ )
46713     {}
46714 
46715     VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46716 
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46717     ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46718     {
46719       *this = rhs;
46720     }
46721 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46722 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46723     ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46724     {
46725       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const *>( &rhs );
46726       return *this;
46727     }
46728 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46729     ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46730     {
46731       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportSemaphoreFdInfoKHR ) );
46732       return *this;
46733     }
46734 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46735     ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46736     {
46737       pNext = pNext_;
46738       return *this;
46739     }
46740 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46741     ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46742     {
46743       semaphore = semaphore_;
46744       return *this;
46745     }
46746 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46747     ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46748     {
46749       flags = flags_;
46750       return *this;
46751     }
46752 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46753     ImportSemaphoreFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46754     {
46755       handleType = handleType_;
46756       return *this;
46757     }
46758 
setFdVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46759     ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
46760     {
46761       fd = fd_;
46762       return *this;
46763     }
46764 
46765 
operator VkImportSemaphoreFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46766     operator VkImportSemaphoreFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46767     {
46768       return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( this );
46769     }
46770 
operator VkImportSemaphoreFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46771     operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
46772     {
46773       return *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>( this );
46774     }
46775 
46776 
46777 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46778     auto operator<=>( ImportSemaphoreFdInfoKHR const& ) const = default;
46779 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46780     bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46781     {
46782       return ( sType == rhs.sType )
46783           && ( pNext == rhs.pNext )
46784           && ( semaphore == rhs.semaphore )
46785           && ( flags == rhs.flags )
46786           && ( handleType == rhs.handleType )
46787           && ( fd == rhs.fd );
46788     }
46789 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR46790     bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46791     {
46792       return !operator==( rhs );
46793     }
46794 #endif
46795 
46796 
46797 
46798   public:
46799     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
46800     const void* pNext = {};
46801     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46802     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
46803     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46804     int fd = {};
46805 
46806   };
46807   static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" );
46808   static_assert( std::is_standard_layout<ImportSemaphoreFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
46809 
46810   template <>
46811   struct CppType<StructureType, StructureType::eImportSemaphoreFdInfoKHR>
46812   {
46813     using Type = ImportSemaphoreFdInfoKHR;
46814   };
46815 
46816 #ifdef VK_USE_PLATFORM_WIN32_KHR
46817   struct ImportSemaphoreWin32HandleInfoKHR
46818   {
46819     static const bool allowDuplicate = false;
46820     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
46821 
46822 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46823     VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
46824     : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ )
46825     {}
46826 
46827     VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46828 
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46829     ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46830     {
46831       *this = rhs;
46832     }
46833 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46834 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46835     ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46836     {
46837       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const *>( &rhs );
46838       return *this;
46839     }
46840 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46841     ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
46842     {
46843       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportSemaphoreWin32HandleInfoKHR ) );
46844       return *this;
46845     }
46846 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46847     ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46848     {
46849       pNext = pNext_;
46850       return *this;
46851     }
46852 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46853     ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
46854     {
46855       semaphore = semaphore_;
46856       return *this;
46857     }
46858 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46859     ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
46860     {
46861       flags = flags_;
46862       return *this;
46863     }
46864 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46865     ImportSemaphoreWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
46866     {
46867       handleType = handleType_;
46868       return *this;
46869     }
46870 
setHandleVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46871     ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
46872     {
46873       handle = handle_;
46874       return *this;
46875     }
46876 
setNameVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46877     ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
46878     {
46879       name = name_;
46880       return *this;
46881     }
46882 
46883 
operator VkImportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46884     operator VkImportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
46885     {
46886       return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( this );
46887     }
46888 
operator VkImportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46889     operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
46890     {
46891       return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>( this );
46892     }
46893 
46894 
46895 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46896     auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const& ) const = default;
46897 #else
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46898     bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46899     {
46900       return ( sType == rhs.sType )
46901           && ( pNext == rhs.pNext )
46902           && ( semaphore == rhs.semaphore )
46903           && ( flags == rhs.flags )
46904           && ( handleType == rhs.handleType )
46905           && ( handle == rhs.handle )
46906           && ( name == rhs.name );
46907     }
46908 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR46909     bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
46910     {
46911       return !operator==( rhs );
46912     }
46913 #endif
46914 
46915 
46916 
46917   public:
46918     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
46919     const void* pNext = {};
46920     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
46921     VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
46922     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
46923     HANDLE handle = {};
46924     LPCWSTR name = {};
46925 
46926   };
46927   static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
46928   static_assert( std::is_standard_layout<ImportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
46929 
46930   template <>
46931   struct CppType<StructureType, StructureType::eImportSemaphoreWin32HandleInfoKHR>
46932   {
46933     using Type = ImportSemaphoreWin32HandleInfoKHR;
46934   };
46935 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
46936 
46937   struct InitializePerformanceApiInfoINTEL
46938   {
46939     static const bool allowDuplicate = false;
46940     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL;
46941 
46942 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46943     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL(void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT
46944     : pUserData( pUserData_ )
46945     {}
46946 
46947     VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
46948 
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46949     InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46950     {
46951       *this = rhs;
46952     }
46953 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
46954 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46955     InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46956     {
46957       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const *>( &rhs );
46958       return *this;
46959     }
46960 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46961     InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
46962     {
46963       memcpy( static_cast<void *>( this ), &rhs, sizeof( InitializePerformanceApiInfoINTEL ) );
46964       return *this;
46965     }
46966 
setPNextVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46967     InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
46968     {
46969       pNext = pNext_;
46970       return *this;
46971     }
46972 
setPUserDataVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46973     InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT
46974     {
46975       pUserData = pUserData_;
46976       return *this;
46977     }
46978 
46979 
operator VkInitializePerformanceApiInfoINTEL const&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46980     operator VkInitializePerformanceApiInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
46981     {
46982       return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( this );
46983     }
46984 
operator VkInitializePerformanceApiInfoINTEL&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46985     operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
46986     {
46987       return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>( this );
46988     }
46989 
46990 
46991 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
46992     auto operator<=>( InitializePerformanceApiInfoINTEL const& ) const = default;
46993 #else
operator ==VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL46994     bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
46995     {
46996       return ( sType == rhs.sType )
46997           && ( pNext == rhs.pNext )
46998           && ( pUserData == rhs.pUserData );
46999     }
47000 
operator !=VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL47001     bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
47002     {
47003       return !operator==( rhs );
47004     }
47005 #endif
47006 
47007 
47008 
47009   public:
47010     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
47011     const void* pNext = {};
47012     void* pUserData = {};
47013 
47014   };
47015   static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" );
47016   static_assert( std::is_standard_layout<InitializePerformanceApiInfoINTEL>::value, "struct wrapper is not a standard layout!" );
47017 
47018   template <>
47019   struct CppType<StructureType, StructureType::eInitializePerformanceApiInfoINTEL>
47020   {
47021     using Type = InitializePerformanceApiInfoINTEL;
47022   };
47023 
47024   struct DisplayEventInfoEXT
47025   {
47026     static const bool allowDuplicate = false;
47027     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT;
47028 
47029 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47030     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT(VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut) VULKAN_HPP_NOEXCEPT
47031     : displayEvent( displayEvent_ )
47032     {}
47033 
47034     VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47035 
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47036     DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47037     {
47038       *this = rhs;
47039     }
47040 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47041 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47042     DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47043     {
47044       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const *>( &rhs );
47045       return *this;
47046     }
47047 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47048     DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47049     {
47050       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayEventInfoEXT ) );
47051       return *this;
47052     }
47053 
setPNextVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47054     DisplayEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47055     {
47056       pNext = pNext_;
47057       return *this;
47058     }
47059 
setDisplayEventVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47060     DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT
47061     {
47062       displayEvent = displayEvent_;
47063       return *this;
47064     }
47065 
47066 
operator VkDisplayEventInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47067     operator VkDisplayEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT
47068     {
47069       return *reinterpret_cast<const VkDisplayEventInfoEXT*>( this );
47070     }
47071 
operator VkDisplayEventInfoEXT&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47072     operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT
47073     {
47074       return *reinterpret_cast<VkDisplayEventInfoEXT*>( this );
47075     }
47076 
47077 
47078 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47079     auto operator<=>( DisplayEventInfoEXT const& ) const = default;
47080 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47081     bool operator==( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47082     {
47083       return ( sType == rhs.sType )
47084           && ( pNext == rhs.pNext )
47085           && ( displayEvent == rhs.displayEvent );
47086     }
47087 
operator !=VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT47088     bool operator!=( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47089     {
47090       return !operator==( rhs );
47091     }
47092 #endif
47093 
47094 
47095 
47096   public:
47097     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT;
47098     const void* pNext = {};
47099     VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut;
47100 
47101   };
47102   static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" );
47103   static_assert( std::is_standard_layout<DisplayEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
47104 
47105   template <>
47106   struct CppType<StructureType, StructureType::eDisplayEventInfoEXT>
47107   {
47108     using Type = DisplayEventInfoEXT;
47109   };
47110 
47111   struct XYColorEXT
47112   {
47113 
47114 
47115 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT47116     VULKAN_HPP_CONSTEXPR XYColorEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT
47117     : x( x_ ), y( y_ )
47118     {}
47119 
47120     VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47121 
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT47122     XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47123     {
47124       *this = rhs;
47125     }
47126 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47127 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT47128     XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47129     {
47130       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XYColorEXT const *>( &rhs );
47131       return *this;
47132     }
47133 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT47134     XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47135     {
47136       memcpy( static_cast<void *>( this ), &rhs, sizeof( XYColorEXT ) );
47137       return *this;
47138     }
47139 
setXVULKAN_HPP_NAMESPACE::XYColorEXT47140     XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
47141     {
47142       x = x_;
47143       return *this;
47144     }
47145 
setYVULKAN_HPP_NAMESPACE::XYColorEXT47146     XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
47147     {
47148       y = y_;
47149       return *this;
47150     }
47151 
47152 
operator VkXYColorEXT const&VULKAN_HPP_NAMESPACE::XYColorEXT47153     operator VkXYColorEXT const&() const VULKAN_HPP_NOEXCEPT
47154     {
47155       return *reinterpret_cast<const VkXYColorEXT*>( this );
47156     }
47157 
operator VkXYColorEXT&VULKAN_HPP_NAMESPACE::XYColorEXT47158     operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT
47159     {
47160       return *reinterpret_cast<VkXYColorEXT*>( this );
47161     }
47162 
47163 
47164 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47165     auto operator<=>( XYColorEXT const& ) const = default;
47166 #else
operator ==VULKAN_HPP_NAMESPACE::XYColorEXT47167     bool operator==( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47168     {
47169       return ( x == rhs.x )
47170           && ( y == rhs.y );
47171     }
47172 
operator !=VULKAN_HPP_NAMESPACE::XYColorEXT47173     bool operator!=( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47174     {
47175       return !operator==( rhs );
47176     }
47177 #endif
47178 
47179 
47180 
47181   public:
47182     float x = {};
47183     float y = {};
47184 
47185   };
47186   static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" );
47187   static_assert( std::is_standard_layout<XYColorEXT>::value, "struct wrapper is not a standard layout!" );
47188 
47189   struct HdrMetadataEXT
47190   {
47191     static const bool allowDuplicate = false;
47192     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT;
47193 
47194 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT47195     VULKAN_HPP_CONSTEXPR HdrMetadataEXT(VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ = {}, float maxLuminance_ = {}, float minLuminance_ = {}, float maxContentLightLevel_ = {}, float maxFrameAverageLightLevel_ = {}) VULKAN_HPP_NOEXCEPT
47196     : displayPrimaryRed( displayPrimaryRed_ ), displayPrimaryGreen( displayPrimaryGreen_ ), displayPrimaryBlue( displayPrimaryBlue_ ), whitePoint( whitePoint_ ), maxLuminance( maxLuminance_ ), minLuminance( minLuminance_ ), maxContentLightLevel( maxContentLightLevel_ ), maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
47197     {}
47198 
47199     VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47200 
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT47201     HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47202     {
47203       *this = rhs;
47204     }
47205 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47206 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT47207     HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47208     {
47209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HdrMetadataEXT const *>( &rhs );
47210       return *this;
47211     }
47212 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT47213     HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
47214     {
47215       memcpy( static_cast<void *>( this ), &rhs, sizeof( HdrMetadataEXT ) );
47216       return *this;
47217     }
47218 
setPNextVULKAN_HPP_NAMESPACE::HdrMetadataEXT47219     HdrMetadataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47220     {
47221       pNext = pNext_;
47222       return *this;
47223     }
47224 
setDisplayPrimaryRedVULKAN_HPP_NAMESPACE::HdrMetadataEXT47225     HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT
47226     {
47227       displayPrimaryRed = displayPrimaryRed_;
47228       return *this;
47229     }
47230 
setDisplayPrimaryGreenVULKAN_HPP_NAMESPACE::HdrMetadataEXT47231     HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT
47232     {
47233       displayPrimaryGreen = displayPrimaryGreen_;
47234       return *this;
47235     }
47236 
setDisplayPrimaryBlueVULKAN_HPP_NAMESPACE::HdrMetadataEXT47237     HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT
47238     {
47239       displayPrimaryBlue = displayPrimaryBlue_;
47240       return *this;
47241     }
47242 
setWhitePointVULKAN_HPP_NAMESPACE::HdrMetadataEXT47243     HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT
47244     {
47245       whitePoint = whitePoint_;
47246       return *this;
47247     }
47248 
setMaxLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT47249     HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT
47250     {
47251       maxLuminance = maxLuminance_;
47252       return *this;
47253     }
47254 
setMinLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT47255     HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT
47256     {
47257       minLuminance = minLuminance_;
47258       return *this;
47259     }
47260 
setMaxContentLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT47261     HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT
47262     {
47263       maxContentLightLevel = maxContentLightLevel_;
47264       return *this;
47265     }
47266 
setMaxFrameAverageLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT47267     HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT
47268     {
47269       maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
47270       return *this;
47271     }
47272 
47273 
operator VkHdrMetadataEXT const&VULKAN_HPP_NAMESPACE::HdrMetadataEXT47274     operator VkHdrMetadataEXT const&() const VULKAN_HPP_NOEXCEPT
47275     {
47276       return *reinterpret_cast<const VkHdrMetadataEXT*>( this );
47277     }
47278 
operator VkHdrMetadataEXT&VULKAN_HPP_NAMESPACE::HdrMetadataEXT47279     operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT
47280     {
47281       return *reinterpret_cast<VkHdrMetadataEXT*>( this );
47282     }
47283 
47284 
47285 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47286     auto operator<=>( HdrMetadataEXT const& ) const = default;
47287 #else
operator ==VULKAN_HPP_NAMESPACE::HdrMetadataEXT47288     bool operator==( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47289     {
47290       return ( sType == rhs.sType )
47291           && ( pNext == rhs.pNext )
47292           && ( displayPrimaryRed == rhs.displayPrimaryRed )
47293           && ( displayPrimaryGreen == rhs.displayPrimaryGreen )
47294           && ( displayPrimaryBlue == rhs.displayPrimaryBlue )
47295           && ( whitePoint == rhs.whitePoint )
47296           && ( maxLuminance == rhs.maxLuminance )
47297           && ( minLuminance == rhs.minLuminance )
47298           && ( maxContentLightLevel == rhs.maxContentLightLevel )
47299           && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
47300     }
47301 
operator !=VULKAN_HPP_NAMESPACE::HdrMetadataEXT47302     bool operator!=( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
47303     {
47304       return !operator==( rhs );
47305     }
47306 #endif
47307 
47308 
47309 
47310   public:
47311     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT;
47312     const void* pNext = {};
47313     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {};
47314     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {};
47315     VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {};
47316     VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {};
47317     float maxLuminance = {};
47318     float minLuminance = {};
47319     float maxContentLightLevel = {};
47320     float maxFrameAverageLightLevel = {};
47321 
47322   };
47323   static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" );
47324   static_assert( std::is_standard_layout<HdrMetadataEXT>::value, "struct wrapper is not a standard layout!" );
47325 
47326   template <>
47327   struct CppType<StructureType, StructureType::eHdrMetadataEXT>
47328   {
47329     using Type = HdrMetadataEXT;
47330   };
47331 
47332   struct SemaphoreSignalInfo
47333   {
47334     static const bool allowDuplicate = false;
47335     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo;
47336 
47337 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47338     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}) VULKAN_HPP_NOEXCEPT
47339     : semaphore( semaphore_ ), value( value_ )
47340     {}
47341 
47342     VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47343 
SemaphoreSignalInfoVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47344     SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47345     {
47346       *this = rhs;
47347     }
47348 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47349 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47350     SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47351     {
47352       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const *>( &rhs );
47353       return *this;
47354     }
47355 
operator =VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47356     SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47357     {
47358       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreSignalInfo ) );
47359       return *this;
47360     }
47361 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47362     SemaphoreSignalInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47363     {
47364       pNext = pNext_;
47365       return *this;
47366     }
47367 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47368     SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
47369     {
47370       semaphore = semaphore_;
47371       return *this;
47372     }
47373 
setValueVULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47374     SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
47375     {
47376       value = value_;
47377       return *this;
47378     }
47379 
47380 
operator VkSemaphoreSignalInfo const&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47381     operator VkSemaphoreSignalInfo const&() const VULKAN_HPP_NOEXCEPT
47382     {
47383       return *reinterpret_cast<const VkSemaphoreSignalInfo*>( this );
47384     }
47385 
operator VkSemaphoreSignalInfo&VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47386     operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
47387     {
47388       return *reinterpret_cast<VkSemaphoreSignalInfo*>( this );
47389     }
47390 
47391 
47392 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47393     auto operator<=>( SemaphoreSignalInfo const& ) const = default;
47394 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47395     bool operator==( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47396     {
47397       return ( sType == rhs.sType )
47398           && ( pNext == rhs.pNext )
47399           && ( semaphore == rhs.semaphore )
47400           && ( value == rhs.value );
47401     }
47402 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo47403     bool operator!=( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47404     {
47405       return !operator==( rhs );
47406     }
47407 #endif
47408 
47409 
47410 
47411   public:
47412     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo;
47413     const void* pNext = {};
47414     VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
47415     uint64_t value = {};
47416 
47417   };
47418   static_assert( sizeof( SemaphoreSignalInfo ) == sizeof( VkSemaphoreSignalInfo ), "struct and wrapper have different size!" );
47419   static_assert( std::is_standard_layout<SemaphoreSignalInfo>::value, "struct wrapper is not a standard layout!" );
47420 
47421   template <>
47422   struct CppType<StructureType, StructureType::eSemaphoreSignalInfo>
47423   {
47424     using Type = SemaphoreSignalInfo;
47425   };
47426   using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
47427 
47428   struct SemaphoreWaitInfo
47429   {
47430     static const bool allowDuplicate = false;
47431     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo;
47432 
47433 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47434     VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo(VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ = {}, uint32_t semaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ = {}, const uint64_t* pValues_ = {}) VULKAN_HPP_NOEXCEPT
47435     : flags( flags_ ), semaphoreCount( semaphoreCount_ ), pSemaphores( pSemaphores_ ), pValues( pValues_ )
47436     {}
47437 
47438     VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
47439 
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47440     SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47441     {
47442       *this = rhs;
47443     }
47444 
47445 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
SemaphoreWaitInfoVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47446     SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ = {} )
47447     : flags( flags_ ), semaphoreCount( static_cast<uint32_t>( semaphores_.size() ) ), pSemaphores( semaphores_.data() ), pValues( values_.data() )
47448     {
47449 #ifdef VULKAN_HPP_NO_EXCEPTIONS
47450       VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() );
47451 #else
47452       if ( semaphores_.size() != values_.size() )
47453       {
47454         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" );
47455       }
47456 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
47457     }
47458 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47459 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
47460 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47461     SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47462     {
47463       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const *>( &rhs );
47464       return *this;
47465     }
47466 
operator =VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47467     SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
47468     {
47469       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreWaitInfo ) );
47470       return *this;
47471     }
47472 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47473     SemaphoreWaitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
47474     {
47475       pNext = pNext_;
47476       return *this;
47477     }
47478 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47479     SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT
47480     {
47481       flags = flags_;
47482       return *this;
47483     }
47484 
setSemaphoreCountVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47485     SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT
47486     {
47487       semaphoreCount = semaphoreCount_;
47488       return *this;
47489     }
47490 
setPSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47491     SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ ) VULKAN_HPP_NOEXCEPT
47492     {
47493       pSemaphores = pSemaphores_;
47494       return *this;
47495     }
47496 
47497 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSemaphoresVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47498     SemaphoreWaitInfo & setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_ ) VULKAN_HPP_NOEXCEPT
47499     {
47500       semaphoreCount = static_cast<uint32_t>( semaphores_.size() );
47501       pSemaphores = semaphores_.data();
47502       return *this;
47503     }
47504 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47505 
setPValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47506     SemaphoreWaitInfo & setPValues( const uint64_t* pValues_ ) VULKAN_HPP_NOEXCEPT
47507     {
47508       pValues = pValues_;
47509       return *this;
47510     }
47511 
47512 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setValuesVULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47513     SemaphoreWaitInfo & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ ) VULKAN_HPP_NOEXCEPT
47514     {
47515       semaphoreCount = static_cast<uint32_t>( values_.size() );
47516       pValues = values_.data();
47517       return *this;
47518     }
47519 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
47520 
47521 
operator VkSemaphoreWaitInfo const&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47522     operator VkSemaphoreWaitInfo const&() const VULKAN_HPP_NOEXCEPT
47523     {
47524       return *reinterpret_cast<const VkSemaphoreWaitInfo*>( this );
47525     }
47526 
operator VkSemaphoreWaitInfo&VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47527     operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
47528     {
47529       return *reinterpret_cast<VkSemaphoreWaitInfo*>( this );
47530     }
47531 
47532 
47533 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47534     auto operator<=>( SemaphoreWaitInfo const& ) const = default;
47535 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47536     bool operator==( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47537     {
47538       return ( sType == rhs.sType )
47539           && ( pNext == rhs.pNext )
47540           && ( flags == rhs.flags )
47541           && ( semaphoreCount == rhs.semaphoreCount )
47542           && ( pSemaphores == rhs.pSemaphores )
47543           && ( pValues == rhs.pValues );
47544     }
47545 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo47546     bool operator!=( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
47547     {
47548       return !operator==( rhs );
47549     }
47550 #endif
47551 
47552 
47553 
47554   public:
47555     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo;
47556     const void* pNext = {};
47557     VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {};
47558     uint32_t semaphoreCount = {};
47559     const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores = {};
47560     const uint64_t* pValues = {};
47561 
47562   };
47563   static_assert( sizeof( SemaphoreWaitInfo ) == sizeof( VkSemaphoreWaitInfo ), "struct and wrapper have different size!" );
47564   static_assert( std::is_standard_layout<SemaphoreWaitInfo>::value, "struct wrapper is not a standard layout!" );
47565 
47566   template <>
47567   struct CppType<StructureType, StructureType::eSemaphoreWaitInfo>
47568   {
47569     using Type = SemaphoreWaitInfo;
47570   };
47571   using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
47572 
47573 #ifndef VULKAN_HPP_NO_SMART_HANDLE
47574   class Device;
47575   template <typename Dispatch> class UniqueHandleTraits<AccelerationStructureKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47576   using UniqueAccelerationStructureKHR = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47577   using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47578   template <typename Dispatch> class UniqueHandleTraits<Buffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47579   using UniqueBuffer = UniqueHandle<Buffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47580   template <typename Dispatch> class UniqueHandleTraits<BufferView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47581   using UniqueBufferView = UniqueHandle<BufferView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47582   template <typename Dispatch> class UniqueHandleTraits<CommandBuffer, Dispatch> { public: using deleter = PoolFree<Device, CommandPool, Dispatch>; };
47583   using UniqueCommandBuffer = UniqueHandle<CommandBuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47584   template <typename Dispatch> class UniqueHandleTraits<CommandPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47585   using UniqueCommandPool = UniqueHandle<CommandPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47586 #ifdef VK_ENABLE_BETA_EXTENSIONS
47587   template <typename Dispatch> class UniqueHandleTraits<DeferredOperationKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47588   using UniqueDeferredOperationKHR = UniqueHandle<DeferredOperationKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47589 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47590   template <typename Dispatch> class UniqueHandleTraits<DescriptorPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47591   using UniqueDescriptorPool = UniqueHandle<DescriptorPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47592   template <typename Dispatch> class UniqueHandleTraits<DescriptorSet, Dispatch> { public: using deleter = PoolFree<Device, DescriptorPool, Dispatch>; };
47593   using UniqueDescriptorSet = UniqueHandle<DescriptorSet, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47594   template <typename Dispatch> class UniqueHandleTraits<DescriptorSetLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47595   using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47596   template <typename Dispatch> class UniqueHandleTraits<DescriptorUpdateTemplate, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47597   using UniqueDescriptorUpdateTemplate = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47598   using UniqueDescriptorUpdateTemplateKHR = UniqueHandle<DescriptorUpdateTemplate, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47599   template <typename Dispatch> class UniqueHandleTraits<DeviceMemory, Dispatch> { public: using deleter = ObjectFree<Device, Dispatch>; };
47600   using UniqueDeviceMemory = UniqueHandle<DeviceMemory, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47601   template <typename Dispatch> class UniqueHandleTraits<Event, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47602   using UniqueEvent = UniqueHandle<Event, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47603   template <typename Dispatch> class UniqueHandleTraits<Fence, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47604   using UniqueFence = UniqueHandle<Fence, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47605   template <typename Dispatch> class UniqueHandleTraits<Framebuffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47606   using UniqueFramebuffer = UniqueHandle<Framebuffer, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47607   template <typename Dispatch> class UniqueHandleTraits<Image, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47608   using UniqueImage = UniqueHandle<Image, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47609   template <typename Dispatch> class UniqueHandleTraits<ImageView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47610   using UniqueImageView = UniqueHandle<ImageView, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47611   template <typename Dispatch> class UniqueHandleTraits<IndirectCommandsLayoutNV, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47612   using UniqueIndirectCommandsLayoutNV = UniqueHandle<IndirectCommandsLayoutNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47613   template <typename Dispatch> class UniqueHandleTraits<Pipeline, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47614   using UniquePipeline = UniqueHandle<Pipeline, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47615   template <typename Dispatch> class UniqueHandleTraits<PipelineCache, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47616   using UniquePipelineCache = UniqueHandle<PipelineCache, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47617   template <typename Dispatch> class UniqueHandleTraits<PipelineLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47618   using UniquePipelineLayout = UniqueHandle<PipelineLayout, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47619   template <typename Dispatch> class UniqueHandleTraits<PrivateDataSlotEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47620   using UniquePrivateDataSlotEXT = UniqueHandle<PrivateDataSlotEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47621   template <typename Dispatch> class UniqueHandleTraits<QueryPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47622   using UniqueQueryPool = UniqueHandle<QueryPool, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47623   template <typename Dispatch> class UniqueHandleTraits<RenderPass, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47624   using UniqueRenderPass = UniqueHandle<RenderPass, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47625   template <typename Dispatch> class UniqueHandleTraits<Sampler, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47626   using UniqueSampler = UniqueHandle<Sampler, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47627   template <typename Dispatch> class UniqueHandleTraits<SamplerYcbcrConversion, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47628   using UniqueSamplerYcbcrConversion = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47629   using UniqueSamplerYcbcrConversionKHR = UniqueHandle<SamplerYcbcrConversion, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47630   template <typename Dispatch> class UniqueHandleTraits<Semaphore, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47631   using UniqueSemaphore = UniqueHandle<Semaphore, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47632   template <typename Dispatch> class UniqueHandleTraits<ShaderModule, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47633   using UniqueShaderModule = UniqueHandle<ShaderModule, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47634   template <typename Dispatch> class UniqueHandleTraits<SwapchainKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47635   using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47636   template <typename Dispatch> class UniqueHandleTraits<ValidationCacheEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
47637   using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
47638 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47639 
47640   class Device
47641   {
47642   public:
47643     using CType = VkDevice;
47644 
47645     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice;
47646     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice;
47647 
47648   public:
Device()47649     VULKAN_HPP_CONSTEXPR Device() VULKAN_HPP_NOEXCEPT
47650       : m_device(VK_NULL_HANDLE)
47651     {}
47652 
Device(std::nullptr_t)47653     VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
47654       : m_device(VK_NULL_HANDLE)
47655     {}
47656 
Device(VkDevice device)47657     VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device ) VULKAN_HPP_NOEXCEPT
47658       : m_device( device )
47659     {}
47660 
47661 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDevice device)47662     Device & operator=(VkDevice device) VULKAN_HPP_NOEXCEPT
47663     {
47664       m_device = device;
47665       return *this;
47666     }
47667 #endif
47668 
operator =(std::nullptr_t)47669     Device & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
47670     {
47671       m_device = VK_NULL_HANDLE;
47672       return *this;
47673     }
47674 
47675 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
47676     auto operator<=>( Device const& ) const = default;
47677 #else
operator ==(Device const & rhs) const47678     bool operator==( Device const & rhs ) const VULKAN_HPP_NOEXCEPT
47679     {
47680       return m_device == rhs.m_device;
47681     }
47682 
operator !=(Device const & rhs) const47683     bool operator!=(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
47684     {
47685       return m_device != rhs.m_device;
47686     }
47687 
operator <(Device const & rhs) const47688     bool operator<(Device const & rhs ) const VULKAN_HPP_NOEXCEPT
47689     {
47690       return m_device < rhs.m_device;
47691     }
47692 #endif
47693 
47694 
47695 #ifdef VK_USE_PLATFORM_WIN32_KHR
47696 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47697     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47698     VULKAN_HPP_NODISCARD Result acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47699 #else
47700     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47701     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47702 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47703 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
47704 
47705 
47706 
47707     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47708     VULKAN_HPP_NODISCARD Result acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47709 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47710     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47711     VULKAN_HPP_NODISCARD ResultValue<uint32_t> acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47712 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47713 
47714 
47715     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47716     VULKAN_HPP_NODISCARD Result acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, uint32_t* pImageIndex, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47717 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47718     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47719     VULKAN_HPP_NODISCARD ResultValue<uint32_t> acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47720 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47721 
47722 
47723     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47724     VULKAN_HPP_NODISCARD Result acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47725 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47726     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47727     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>::type acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47728 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47729   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47730   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>>::type acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47731 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47733 
47734 
47735     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47736     VULKAN_HPP_NODISCARD Result acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47737 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47738     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47739     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47740 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47741 
47742 
47743     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47744     VULKAN_HPP_NODISCARD Result allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47745 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47746     template <typename CommandBufferAllocator = std::allocator<CommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47747     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<CommandBuffer, CommandBufferAllocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47748     template <typename CommandBufferAllocator = std::allocator<CommandBuffer>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CommandBufferAllocator, typename std::enable_if<std::is_same<typename B::value_type, CommandBuffer>::value, int>::type = 0>
47749     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<CommandBuffer, CommandBufferAllocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47750 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47751     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename CommandBufferAllocator = std::allocator<UniqueHandle<CommandBuffer, Dispatch>>>
47752     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47753     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename CommandBufferAllocator = std::allocator<UniqueHandle<CommandBuffer, Dispatch>>, typename B = CommandBufferAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<CommandBuffer, Dispatch>>::value, int>::type = 0>
47754     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47755 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47757 
47758 
47759     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47760     VULKAN_HPP_NODISCARD Result allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47761 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47762     template <typename DescriptorSetAllocator = std::allocator<DescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47763     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<DescriptorSet, DescriptorSetAllocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47764     template <typename DescriptorSetAllocator = std::allocator<DescriptorSet>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DescriptorSetAllocator, typename std::enable_if<std::is_same<typename B::value_type, DescriptorSet>::value, int>::type = 0>
47765     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<DescriptorSet, DescriptorSetAllocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47766 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47767     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename DescriptorSetAllocator = std::allocator<UniqueHandle<DescriptorSet, Dispatch>>>
47768     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47769     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename DescriptorSetAllocator = std::allocator<UniqueHandle<DescriptorSet, Dispatch>>, typename B = DescriptorSetAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<DescriptorSet, Dispatch>>::value, int>::type = 0>
47770     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47771 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47772 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47773 
47774 
47775     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47776     VULKAN_HPP_NODISCARD Result allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo* pAllocateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeviceMemory* pMemory, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47777 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47778     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47779     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceMemory>::type allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47780 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47781   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47782   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47783 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47784 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47785 
47786 
47787 #ifdef VK_ENABLE_BETA_EXTENSIONS
47788     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47789     VULKAN_HPP_NODISCARD Result bindAccelerationStructureMemoryKHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47790 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47791     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47792     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindAccelerationStructureMemoryKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47793 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47794 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47795 
47796     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47797     VULKAN_HPP_NODISCARD Result bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47798 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47799     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47800     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindAccelerationStructureMemoryNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47801 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47802 
47803 
47804 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47805     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47806     VULKAN_HPP_NODISCARD Result bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47807 #else
47808     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47809     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47810 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47811 
47812 
47813 
47814     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47815     VULKAN_HPP_NODISCARD Result bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47817     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47818     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindBufferMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47820 
47821     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47822     VULKAN_HPP_NODISCARD Result bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47823 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47824     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47825     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindBufferMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47826 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47827 
47828 
47829 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47830     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47831     VULKAN_HPP_NODISCARD Result bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47832 #else
47833     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47834     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47836 
47837 
47838 
47839     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47840     VULKAN_HPP_NODISCARD Result bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47841 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47842     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47843     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindImageMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47844 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47845 
47846     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47847     VULKAN_HPP_NODISCARD Result bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47848 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47849     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47850     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type bindImageMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47851 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47852 
47853 
47854 #ifdef VK_ENABLE_BETA_EXTENSIONS
47855     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47856     VULKAN_HPP_NODISCARD Result buildAccelerationStructureKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47857 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47858     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47859     Result buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const > const & pOffsetInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
47860 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47861 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47862 
47863 
47864 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
47865     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47866     VULKAN_HPP_NODISCARD Result compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47867 #else
47868     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47869     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47870 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47871 
47872 
47873 
47874 #ifdef VK_ENABLE_BETA_EXTENSIONS
47875     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47876     VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47877 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47878     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47879     VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47880 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47881 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47882 
47883 
47884 #ifdef VK_ENABLE_BETA_EXTENSIONS
47885     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47886     VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47887 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47888     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47889     VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47890 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47891 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47892 
47893 
47894 #ifdef VK_ENABLE_BETA_EXTENSIONS
47895     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47896     VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47897 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47898     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47899     VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47900 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47901 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47902 
47903 
47904 #ifdef VK_ENABLE_BETA_EXTENSIONS
47905     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47906     VULKAN_HPP_NODISCARD Result createAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructure, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47907 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47908     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47909     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>::type createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47910 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47911   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47912   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>>::type createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47913 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47914 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47915 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47916 
47917 
47918     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47919     VULKAN_HPP_NODISCARD Result createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47920 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47921     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47922     typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::type createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47923 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47924   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47925   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>>::type createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47926 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47927 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47928 
47929 
47930     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47931     VULKAN_HPP_NODISCARD Result createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Buffer* pBuffer, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47932 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47933     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47934     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Buffer>::type createBuffer( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47935 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47936   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47937   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47938 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47940 
47941 
47942     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47943     VULKAN_HPP_NODISCARD Result createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::BufferView* pView, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47944 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47945     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47946     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferView>::type createBufferView( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47947 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47948   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47949   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47950 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47951 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47952 
47953 
47954     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47955     VULKAN_HPP_NODISCARD Result createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::CommandPool* pCommandPool, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47956 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47957     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47958     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::CommandPool>::type createCommandPool( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47959 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47960   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47961   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47962 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47963 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47964 
47965 
47966     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47967     VULKAN_HPP_NODISCARD Result createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47968 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47969     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47970     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47971     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
47972     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47973     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47974     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47975 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47976     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
47977     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47978     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
47979     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47980     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47981     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47982 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47983 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47984 
47985 
47986 #ifdef VK_ENABLE_BETA_EXTENSIONS
47987     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47988     VULKAN_HPP_NODISCARD Result createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
47989 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
47990     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47991     typename ResultValueType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::type createDeferredOperationKHR( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47992 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
47993   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
47994   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>>::type createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
47995 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
47996 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
47997 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
47998 
47999 
48000     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48001     VULKAN_HPP_NODISCARD Result createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorPool* pDescriptorPool, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48002 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48003     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48004     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorPool>::type createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48005 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48006   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48007   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48008 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48009 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48010 
48011 
48012     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48013     VULKAN_HPP_NODISCARD Result createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48014 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48015     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48016     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>::type createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48017 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48018   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48019   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48020 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48021 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48022 
48023 
48024     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48025     VULKAN_HPP_NODISCARD Result createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48026 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48027     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48028     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48029 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48030   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48031   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48032 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48033 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48034 
48035     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48036     VULKAN_HPP_NODISCARD Result createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48037 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48038     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48039     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48040 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48041   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48042   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48043 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48044 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48045 
48046 
48047     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48048     VULKAN_HPP_NODISCARD Result createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Event* pEvent, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48049 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48050     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48051     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Event>::type createEvent( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48052 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48053   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48054   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Event, Dispatch>>::type createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48055 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48057 
48058 
48059     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48060     VULKAN_HPP_NODISCARD Result createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48061 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48062     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48063     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type createFence( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48064 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48065   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48066   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48067 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48068 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48069 
48070 
48071     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48072     VULKAN_HPP_NODISCARD Result createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Framebuffer* pFramebuffer, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48073 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48074     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48075     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Framebuffer>::type createFramebuffer( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48076 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48077   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48078   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48079 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48081 
48082 
48083     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48084     VULKAN_HPP_NODISCARD Result createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48086     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48087     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48088     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
48089     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48090     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48091     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48092 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48093     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
48094     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48095     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
48096     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48097     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48098     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48099 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48100 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48101 
48102 
48103     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48104     VULKAN_HPP_NODISCARD Result createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Image* pImage, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48105 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48106     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48107     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Image>::type createImage( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48108 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48109   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48110   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Image, Dispatch>>::type createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48111 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48112 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48113 
48114 
48115     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48116     VULKAN_HPP_NODISCARD Result createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ImageView* pView, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48117 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48118     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48119     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageView>::type createImageView( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48120 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48121   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48122   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48123 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48124 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48125 
48126 
48127     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48128     VULKAN_HPP_NODISCARD Result createIndirectCommandsLayoutNV( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV* pIndirectCommandsLayout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48129 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48130     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48131     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>::type createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48132 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48133   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48134   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>>::type createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48135 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48136 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48137 
48138 
48139     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48140     VULKAN_HPP_NODISCARD Result createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineCache* pPipelineCache, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48141 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48142     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48143     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineCache>::type createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48144 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48145   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48146   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48147 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48148 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48149 
48150 
48151     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48152     VULKAN_HPP_NODISCARD Result createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineLayout* pPipelineLayout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48153 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48154     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48155     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineLayout>::type createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48156 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48157   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48158   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48159 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48160 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48161 
48162 
48163     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48164     VULKAN_HPP_NODISCARD Result createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT* pPrivateDataSlot, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48165 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48166     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48167     typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>::type createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48168 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48169   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48170   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT, Dispatch>>::type createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48171 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48172 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48173 
48174 
48175     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48176     VULKAN_HPP_NODISCARD Result createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::QueryPool* pQueryPool, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48177 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48178     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48179     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::QueryPool>::type createQueryPool( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48180 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48181   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48182   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48183 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48184 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48185 
48186 
48187 #ifdef VK_ENABLE_BETA_EXTENSIONS
48188     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48189     VULKAN_HPP_NODISCARD Result createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48190 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48191     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48192     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48193     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
48194     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48195     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48196     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48197 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48198     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
48199     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48200     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
48201     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48202     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48203     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48204 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48205 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48206 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48207 
48208 
48209     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48210     VULKAN_HPP_NODISCARD Result createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48211 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48212     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48213     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48214     template <typename PipelineAllocator = std::allocator<Pipeline>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type = 0>
48215     VULKAN_HPP_NODISCARD ResultValue<std::vector<Pipeline, PipelineAllocator>> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48216     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48217     VULKAN_HPP_NODISCARD ResultValue<Pipeline> createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48218 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48219     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>>
48220     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48221     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename PipelineAllocator = std::allocator<UniqueHandle<Pipeline, Dispatch>>, typename B = PipelineAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type = 0>
48222     VULKAN_HPP_NODISCARD ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48223     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48224     VULKAN_HPP_NODISCARD ResultValue<UniqueHandle<Pipeline, Dispatch>> createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48225 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48226 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48227 
48228 
48229     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48230     VULKAN_HPP_NODISCARD Result createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48231 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48232     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48233     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type createRenderPass( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48234 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48235   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48236   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48237 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48238 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48239 
48240 
48241     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48242     VULKAN_HPP_NODISCARD Result createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48243 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48244     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48245     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48246 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48247   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48248   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48249 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48250 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48251 
48252     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48253     VULKAN_HPP_NODISCARD Result createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48254 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48255     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48256     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48257 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48258   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48259   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48260 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48261 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48262 
48263 
48264     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48265     VULKAN_HPP_NODISCARD Result createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Sampler* pSampler, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48266 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48267     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48268     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Sampler>::type createSampler( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48269 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48270   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48271   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48272 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48273 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48274 
48275 
48276     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48277     VULKAN_HPP_NODISCARD Result createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48278 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48279     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48280     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48281 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48282   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48283   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48284 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48285 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48286 
48287     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48288     VULKAN_HPP_NODISCARD Result createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48289 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48290     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48291     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48292 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48293   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48294   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48295 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48296 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48297 
48298 
48299     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48300     VULKAN_HPP_NODISCARD Result createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Semaphore* pSemaphore, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48301 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48302     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48303     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Semaphore>::type createSemaphore( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48304 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48305   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48306   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48307 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48308 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48309 
48310 
48311     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48312     VULKAN_HPP_NODISCARD Result createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ShaderModule* pShaderModule, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48313 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48314     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48315     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::ShaderModule>::type createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48316 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48317   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48318   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48319 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48320 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48321 
48322 
48323     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48324     VULKAN_HPP_NODISCARD Result createSharedSwapchainsKHR( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48325 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48326     template <typename SwapchainKHRAllocator = std::allocator<SwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48327     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<SwapchainKHR, SwapchainKHRAllocator>>::type createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48328     template <typename SwapchainKHRAllocator = std::allocator<SwapchainKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SwapchainKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, SwapchainKHR>::value, int>::type = 0>
48329     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<SwapchainKHR, SwapchainKHRAllocator>>::type createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48330     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48331     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<SwapchainKHR>::type createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48332 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48333     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename SwapchainKHRAllocator = std::allocator<UniqueHandle<SwapchainKHR, Dispatch>>>
48334     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48335     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename SwapchainKHRAllocator = std::allocator<UniqueHandle<SwapchainKHR, Dispatch>>, typename B = SwapchainKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<SwapchainKHR, Dispatch>>::value, int>::type = 0>
48336     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48337     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48338     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<UniqueHandle<SwapchainKHR, Dispatch>>::type createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48339 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48340 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48341 
48342 
48343     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48344     VULKAN_HPP_NODISCARD Result createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48345 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48346     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48347     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SwapchainKHR>::type createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48348 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48349   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48350   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48351 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48352 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48353 
48354 
48355     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48356     VULKAN_HPP_NODISCARD Result createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48357 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48358     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48359     typename ResultValueType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::type createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48360 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
48361   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48362   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48363 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
48364 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48365 
48366 
48367     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48368     VULKAN_HPP_NODISCARD Result debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48369 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48370     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48371     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48372 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48373 
48374 
48375     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48376     VULKAN_HPP_NODISCARD Result debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48377 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48378     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48379     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48380 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48381 
48382 
48383 #ifdef VK_ENABLE_BETA_EXTENSIONS
48384 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48385     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48386     VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48387 #else
48388     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48389     VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48390 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48391 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48392 
48393 
48394 
48395 #ifdef VK_ENABLE_BETA_EXTENSIONS
48396     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48397     void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48398 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48399     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48400     void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48401 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48402 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48403 
48404     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48405     void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48406 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48407     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48408     void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48409 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48410 
48411 
48412     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48413     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48414 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48415     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48416     void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48418 
48419 
48420     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48421     void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48422 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48423     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48424     void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48425 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48426 
48427 
48428     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48429     void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48430 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48431     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48432     void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48433 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48434 
48435 
48436     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48437     void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48438 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48439     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48440     void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48441 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48442 
48443 
48444     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48445     void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48446 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48447     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48448     void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48449 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48450 
48451 
48452     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48453     void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48454 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48455     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48456     void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48457 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48458 
48459 
48460     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48461     void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48462 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48463     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48464     void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48465 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48466 
48467 
48468 #ifdef VK_ENABLE_BETA_EXTENSIONS
48469     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48470     void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48472     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48473     void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48475 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48476 
48477 
48478 #ifdef VK_ENABLE_BETA_EXTENSIONS
48479     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48480     void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48481 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48482     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48483     void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48484 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48485 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48486 
48487 
48488     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48489     void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48490 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48491     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48492     void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48493 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48494 
48495 
48496     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48497     void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48499     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48500     void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48501 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48502 
48503 
48504     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48505     void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48506 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48507     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48508     void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48509 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48510 
48511 
48512     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48513     void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48514 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48515     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48516     void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48518 
48519 
48520     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48521     void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48522 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48523     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48524     void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48525 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48526 
48527     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48528     void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48529 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48530     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48531     void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48532 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48533 
48534 
48535     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48536     void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48537 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48538     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48539     void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48540 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48541 
48542 
48543     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48544     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48545 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48546     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48547     void destroy( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48548 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48549 
48550 
48551     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48552     void destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48553 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48554     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48555     void destroyEvent( VULKAN_HPP_NAMESPACE::Event event VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48557 
48558 
48559     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48560     void destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48561 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48562     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48563     void destroy( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48564 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48565 
48566 
48567     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48568     void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48569 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48570     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48571     void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48572 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48573 
48574 
48575     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48576     void destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48577 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48578     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48579     void destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48580 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48581 
48582 
48583     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48584     void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48585 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48586     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48587     void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48588 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48589 
48590 
48591     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48592     void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48593 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48594     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48595     void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48596 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48597 
48598 
48599     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48600     void destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48601 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48602     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48603     void destroyImage( VULKAN_HPP_NAMESPACE::Image image VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48604 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48605 
48606 
48607     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48608     void destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48609 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48610     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48611     void destroy( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48612 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48613 
48614 
48615     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48616     void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48617 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48618     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48619     void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48620 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48621 
48622 
48623     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48624     void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48625 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48626     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48627     void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48628 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48629 
48630 
48631     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48632     void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48633 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48634     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48635     void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48637 
48638 
48639     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48640     void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48641 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48642     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48643     void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48644 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48645 
48646 
48647     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48648     void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48649 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48650     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48651     void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48652 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48653 
48654 
48655     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48656     void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48657 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48658     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48659     void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48660 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48661 
48662 
48663     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48664     void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48665 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48666     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48667     void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48668 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48669 
48670 
48671     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48672     void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48673 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48674     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48675     void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48676 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48677 
48678 
48679     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48680     void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48681 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48682     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48683     void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48684 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48685 
48686 
48687     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48688     void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48689 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48690     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48691     void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48692 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48693 
48694 
48695     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48696     void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48697 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48698     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48699     void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48700 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48701 
48702 
48703     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48704     void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48705 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48706     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48707     void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48709 
48710 
48711     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48712     void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48713 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48714     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48715     void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48716 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48717 
48718 
48719     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48720     void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48721 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48722     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48723     void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48724 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48725 
48726 
48727     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48728     void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48729 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48730     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48731     void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48733 
48734 
48735     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48736     void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48737 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48738     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48739     void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48740 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48741 
48742 
48743     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48744     void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48745 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48746     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48747     void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48748 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48749 
48750 
48751     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48752     void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48754     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48755     void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48757 
48758 
48759     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48760     void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48761 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48762     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48763     void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48764 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48765 
48766     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48767     void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48768 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48769     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48770     void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48771 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48772 
48773 
48774     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48775     void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48776 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48777     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48778     void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48779 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48780 
48781 
48782     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48783     void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48784 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48785     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48786     void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48787 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48788 
48789 
48790     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48791     void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48792 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48793     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48794     void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48795 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48796 
48797 
48798     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48799     void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48800 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48801     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48802     void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48803 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48804 
48805 
48806     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48807     void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48808 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48809     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48810     void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48811 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48812 
48813 
48814     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48815     void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48817     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48818     void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48820 
48821 
48822     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48823     void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48824 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48825     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48826     void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48827 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48828 
48829 
48830     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48831     void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48832 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48833     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48834     void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48836 
48837 
48838     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48839     void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48840 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48841     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48842     void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48843 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48844 
48845 
48846 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
48847     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48848     VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48849 #else
48850     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48851     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48852 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48853 
48854 
48855 
48856     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48857     VULKAN_HPP_NODISCARD Result displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48858 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48859     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48860     typename ResultValueType<void>::type displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48861 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48862 
48863 
48864     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48865     VULKAN_HPP_NODISCARD Result flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48866 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48867     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48868     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type flushMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48869 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48870 
48871 
48872     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48873     void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48874 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48875     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48876     void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48877 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48878 
48879 
48880     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48881     void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48882 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48883     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48884     void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48885 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48886 
48887 
48888     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48889     Result freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48890 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48891     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48892     typename ResultValueType<void>::type freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48893 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48894 
48895 
48896     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48897     Result free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48898 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48899     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48900     typename ResultValueType<void>::type free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48901 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48902 
48903 
48904     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48905     void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48906 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48907     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48908     void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48909 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48910 
48911 
48912     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48913     void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48914 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48915     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48916     void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48917 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48918 
48919 
48920 #ifdef VK_ENABLE_BETA_EXTENSIONS
48921     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48922     DeviceAddress getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48923 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48924     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48925     DeviceAddress getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48926 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48927 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48928 
48929 
48930     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48931     VULKAN_HPP_NODISCARD Result getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48932 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48933     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48934     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type getAccelerationStructureHandleNV(  VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, ArrayProxy<T> const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
48935     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48936     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<T,Allocator>>::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48937     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48938     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<T>::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48940 
48941 
48942 #ifdef VK_ENABLE_BETA_EXTENSIONS
48943     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48944     void getAccelerationStructureMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48945 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48946     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48947     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48948     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48949     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48950 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48951 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
48952 
48953 
48954     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48955     void getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48956 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48957     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48958     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48959     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48960     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48961 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48962 
48963 
48964 #ifdef VK_USE_PLATFORM_ANDROID_KHR
48965     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48966     VULKAN_HPP_NODISCARD Result getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48967 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48968     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48969     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48970     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48971     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<StructureChain<X, Y, Z...>>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
48972 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48973 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
48974 
48975 
48976     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48977     DeviceAddress getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48978 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48979     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48980     DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48981 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48982 
48983     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48984     DeviceAddress getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48985 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48986     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48987     DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48988 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48989 
48990     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48991     DeviceAddress getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48992 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
48993     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48994     DeviceAddress getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
48995 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
48996 
48997 
48998     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
48999     void getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49000 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49001     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49002     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49003 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49004 
49005 
49006     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49007     void getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49008 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49009     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49010     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49011     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49012     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49013 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49014 
49015     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49016     void getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49017 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49018     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49019     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49020     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49021     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49022 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49023 
49024 
49025     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49026     uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49027 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49028     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49029     uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49030 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49031 
49032     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49033     uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49034 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49035     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49036     uint64_t getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49037 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49038 
49039 
49040     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49041     VULKAN_HPP_NODISCARD Result getCalibratedTimestampsEXT( uint32_t timestampCount, const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49042 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49043     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49044     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<uint64_t>::type getCalibratedTimestampsEXT(  ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const &timestampInfos, ArrayProxy<uint64_t> const &timestamps, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
49045     template <typename Uint64_tAllocator = std::allocator<uint64_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49046     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49047     template <typename Uint64_tAllocator = std::allocator<uint64_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint64_tAllocator, typename std::enable_if<std::is_same<typename B::value_type, uint64_t>::value, int>::type = 0>
49048     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos, Uint64_tAllocator & uint64_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49049 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49050 
49051 
49052 #ifdef VK_ENABLE_BETA_EXTENSIONS
49053     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49054     uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49055 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49056 
49057 
49058 #ifdef VK_ENABLE_BETA_EXTENSIONS
49059 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49060     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49061     VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49062 #else
49063     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49064     VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49065 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49066 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49067 
49068 
49069 
49070     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49071     void getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49073     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49074     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49075     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49076     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49077 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49078 
49079     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49080     void getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49081 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49082     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49083     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49084     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49085     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49087 
49088 
49089 #ifdef VK_ENABLE_BETA_EXTENSIONS
49090     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49091     VULKAN_HPP_NODISCARD Result getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR* version, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49092 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49093     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49094     typename ResultValueType<void>::type getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionKHR & version, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49095 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49096 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49097 
49098 
49099     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49100     void getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49101 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49102     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49103     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49104 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49105 
49106     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49107     void getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49108 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49109     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49110     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49111 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49112 
49113 
49114     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49115     VULKAN_HPP_NODISCARD Result getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49116 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49117     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49118     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type getGroupPresentCapabilitiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49119 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49120 
49121 
49122 #ifdef VK_USE_PLATFORM_WIN32_KHR
49123     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49124     VULKAN_HPP_NODISCARD Result getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49125 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49126     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49127     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49128 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49129 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49130 
49131 
49132     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49133     VULKAN_HPP_NODISCARD Result getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49134 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49135     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49136     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49137 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49138 
49139 
49140     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49141     void getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49143     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49144     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49145 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49146 
49147 
49148     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49149     uint64_t getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49150 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49151     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49152     uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49153 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49154 
49155     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49156     uint64_t getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49157 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49158     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49159     uint64_t getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49160 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49161 
49162 
49163     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49164     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49165 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49166     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49167     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49168 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49169 
49170 
49171     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49172     void getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49173 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49174     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49175     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49176 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49177 
49178 
49179     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49180     void getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49181 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49182     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49183     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49184 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49185 
49186 
49187 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49188     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49189     VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49190 #else
49191     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49192     VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49193 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49194 
49195 
49196 
49197     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49198     VULKAN_HPP_NODISCARD Result getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49199 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49200     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49201     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49202 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49203 
49204 
49205 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49206     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49207     VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49208 #else
49209     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49210     VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49211 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49212 
49213 
49214 
49215 #ifdef VK_USE_PLATFORM_WIN32_KHR
49216     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49217     VULKAN_HPP_NODISCARD Result getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49218 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49219     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49220     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49221 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49222 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49223 
49224 
49225     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49226     void getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49227 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49228     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49229     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49230     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49231     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49232 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49233 
49234 
49235     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49236     VULKAN_HPP_NODISCARD Result getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49237 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49238     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49239     typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49240 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49241 
49242 
49243     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49244     void getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49245 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49246     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49247     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49248 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49249 
49250 
49251     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49252     void getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49253 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49254     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49255     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49256     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49257     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49258 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49259 
49260     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49261     void getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49262 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49263     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49264     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49265     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49266     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49267 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49268 
49269 
49270     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49271     void getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49272 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49273     template <typename SparseImageMemoryRequirementsAllocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49274     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49275     template <typename SparseImageMemoryRequirementsAllocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageMemoryRequirementsAllocator, typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements>::value, int>::type = 0>
49276     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49277 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49278 
49279 
49280     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49281     void getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49282 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49283     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49284     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49285     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageMemoryRequirements2Allocator, typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements2>::value, int>::type = 0>
49286     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49287 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49288 
49289     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49290     void getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49291 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49292     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49293     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49294     template <typename SparseImageMemoryRequirements2Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageMemoryRequirements2Allocator, typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements2>::value, int>::type = 0>
49295     VULKAN_HPP_NODISCARD std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49296 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49297 
49298 
49299     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49300     void getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource* pSubresource, VULKAN_HPP_NAMESPACE::SubresourceLayout* pLayout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49301 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49302     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49303     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49304 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49305 
49306 
49307     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49308     VULKAN_HPP_NODISCARD Result getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49309 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49310     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49311     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX>::type getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49312 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49313 
49314 
49315     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49316     uint32_t getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49317 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49318     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49319     uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49320 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49321 
49322 
49323 #ifdef VK_USE_PLATFORM_ANDROID_KHR
49324     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49325     VULKAN_HPP_NODISCARD Result getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49326 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49327     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49328     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<struct AHardwareBuffer*>::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49329 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49330 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
49331 
49332 
49333     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49334     VULKAN_HPP_NODISCARD Result getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49335 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49336     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49337     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49338 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49339 
49340 
49341     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49342     VULKAN_HPP_NODISCARD Result getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49343 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49344     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49345     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR>::type getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49346 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49347 
49348 
49349     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49350     VULKAN_HPP_NODISCARD Result getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49351 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49352     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49353     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT>::type getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49354 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49355 
49356 
49357 #ifdef VK_USE_PLATFORM_WIN32_KHR
49358     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49359     VULKAN_HPP_NODISCARD Result getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49360 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49361     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49362     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49364 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49365 
49366 
49367 #ifdef VK_USE_PLATFORM_WIN32_KHR
49368     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49369     VULKAN_HPP_NODISCARD Result getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49370 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49371     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49372     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49373 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49374 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49375 
49376 
49377 #ifdef VK_USE_PLATFORM_WIN32_KHR
49378     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49379     VULKAN_HPP_NODISCARD Result getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49380 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49381     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49382     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR>::type getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49383 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49384 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49385 
49386 
49387     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49388     VULKAN_HPP_NODISCARD Result getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49389 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49390     template <typename PastPresentationTimingGOOGLEAllocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49391     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49392     template <typename PastPresentationTimingGOOGLEAllocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PastPresentationTimingGOOGLEAllocator, typename std::enable_if<std::is_same<typename B::value_type, PastPresentationTimingGOOGLE>::value, int>::type = 0>
49393     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49395 
49396 
49397     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49398     VULKAN_HPP_NODISCARD Result getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49399 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49400     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49401     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL>::type getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49402 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49403 
49404 
49405     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49406     VULKAN_HPP_NODISCARD Result getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49407 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49408     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49409     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49410     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
49411     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49412 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49413 
49414 
49415     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49416     VULKAN_HPP_NODISCARD Result getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49417 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49418     template <typename PipelineExecutableInternalRepresentationKHRAllocator = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49419     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49420     template <typename PipelineExecutableInternalRepresentationKHRAllocator = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutableInternalRepresentationKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type = 0>
49421     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49422 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49423 
49424 
49425     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49426     VULKAN_HPP_NODISCARD Result getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49427 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49428     template <typename PipelineExecutablePropertiesKHRAllocator = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49429     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49430     template <typename PipelineExecutablePropertiesKHRAllocator = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutablePropertiesKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutablePropertiesKHR>::value, int>::type = 0>
49431     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49432 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49433 
49434 
49435     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49436     VULKAN_HPP_NODISCARD Result getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR* pStatistics, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49437 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49438     template <typename PipelineExecutableStatisticKHRAllocator = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49439     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49440     template <typename PipelineExecutableStatisticKHRAllocator = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutableStatisticKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableStatisticKHR>::value, int>::type = 0>
49441     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49443 
49444 
49445     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49446     void getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49447 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49448     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49449     VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49450 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49451 
49452 
49453     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49454     VULKAN_HPP_NODISCARD Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49455 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49456     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49457     VULKAN_HPP_NODISCARD Result getQueryPoolResults(  VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy<T> const &data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
49458     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49459     VULKAN_HPP_NODISCARD ResultValue<std::vector<T,Allocator>> getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49460     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49461     VULKAN_HPP_NODISCARD ResultValue<T> getQueryPoolResult( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49462 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49463 
49464 
49465 #ifdef VK_ENABLE_BETA_EXTENSIONS
49466     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49467     VULKAN_HPP_NODISCARD Result getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49468 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49469     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49470     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type getRayTracingCaptureReplayShaderGroupHandlesKHR(  VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
49471     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49472     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<T,Allocator>>::type getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49473     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49474     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<T>::type getRayTracingCaptureReplayShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49475 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49476 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49477 
49478 
49479 #ifdef VK_ENABLE_BETA_EXTENSIONS
49480     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49481     VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49482 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49483     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49484     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type getRayTracingShaderGroupHandlesKHR(  VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
49485     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49486     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<T,Allocator>>::type getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49487     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49488     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<T>::type getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49489 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49490 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49491 
49492     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49493     VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49494 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49495     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49496     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type getRayTracingShaderGroupHandlesNV(  VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
49497     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49498     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<T,Allocator>>::type getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49499     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49500     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<T>::type getRayTracingShaderGroupHandleNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49501 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49502 
49503 
49504     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49505     VULKAN_HPP_NODISCARD Result getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49506 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49507     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49508     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE>::type getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49509 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49510 
49511 
49512     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49513     void getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49514 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49515     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49516     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49518 
49519 
49520     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49521     VULKAN_HPP_NODISCARD Result getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49522 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49523     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49524     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<uint64_t>::type getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49525 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49526 
49527     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49528     VULKAN_HPP_NODISCARD Result getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49529 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49530     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49531     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<uint64_t>::type getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49532 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49533 
49534 
49535     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49536     VULKAN_HPP_NODISCARD Result getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49537 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49538     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49539     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<int>::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49540 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49541 
49542 
49543 #ifdef VK_USE_PLATFORM_WIN32_KHR
49544     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49545     VULKAN_HPP_NODISCARD Result getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49546 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49547     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49548     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<HANDLE>::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49550 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49551 
49552 
49553     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49554     VULKAN_HPP_NODISCARD Result getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49555 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49556     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49557     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49558     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
49559     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49560 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49561 
49562 
49563     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49564     VULKAN_HPP_NODISCARD Result getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49565 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49566     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49567     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<uint64_t>::type getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49568 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49569 
49570 
49571     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49572     VULKAN_HPP_NODISCARD Result getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VULKAN_HPP_NAMESPACE::Image* pSwapchainImages, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49573 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49574     template <typename ImageAllocator = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49575     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Image, ImageAllocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49576     template <typename ImageAllocator = std::allocator<Image>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ImageAllocator, typename std::enable_if<std::is_same<typename B::value_type, Image>::value, int>::type = 0>
49577     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Image, ImageAllocator>>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49579 
49580 
49581 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49582     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49583     VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49584 #else
49585     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49586     VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49587 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49588 
49589 
49590 
49591     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49592     VULKAN_HPP_NODISCARD Result getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49593 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49594     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49595     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49596     template <typename Uint8_tAllocator = std::allocator<uint8_t>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type = 0>
49597     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49598 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49599 
49600 
49601     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49602     VULKAN_HPP_NODISCARD Result importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49603 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49604     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49605     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49606 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49607 
49608 
49609 #ifdef VK_USE_PLATFORM_WIN32_KHR
49610     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49611     VULKAN_HPP_NODISCARD Result importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49612 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49613     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49614     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49615 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49616 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49617 
49618 
49619     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49620     VULKAN_HPP_NODISCARD Result importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49621 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49622     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49623     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49624 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49625 
49626 
49627 #ifdef VK_USE_PLATFORM_WIN32_KHR
49628     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49629     VULKAN_HPP_NODISCARD Result importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49630 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49631     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49632     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49633 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49634 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49635 
49636 
49637     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49638     VULKAN_HPP_NODISCARD Result initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49639 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49640     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49641     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49642 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49643 
49644 
49645     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49646     VULKAN_HPP_NODISCARD Result invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49647 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49648     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49649     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type invalidateMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49650 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49651 
49652 
49653     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49654     VULKAN_HPP_NODISCARD Result mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, void** ppData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49655 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49656     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49657     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void*>::type mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49658 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49659 
49660 
49661     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49662     VULKAN_HPP_NODISCARD Result mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::PipelineCache* pSrcCaches, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49663 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49664     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49665     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49667 
49668 
49669     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49670     VULKAN_HPP_NODISCARD Result mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pSrcCaches, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49671 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49672     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49673     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49674 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49675 
49676 
49677     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49678     VULKAN_HPP_NODISCARD Result registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49679 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49680     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49681     typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49682 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49683   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49684   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49685 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49686 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49687 
49688 
49689     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49690     VULKAN_HPP_NODISCARD Result registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49691 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49692     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49693     typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49694 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
49695   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49696   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49697 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
49698 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49699 
49700 
49701 #ifdef VK_USE_PLATFORM_WIN32_KHR
49702 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49703     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49704     VULKAN_HPP_NODISCARD Result releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49705 #else
49706     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49707     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49709 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
49710 
49711 
49712 
49713 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49714     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49715     VULKAN_HPP_NODISCARD Result releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49716 #else
49717     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49718     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49719 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49720 
49721 
49722 
49723 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49724     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49725     VULKAN_HPP_NODISCARD Result release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49726 #else
49727     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49728     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49729 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49730 
49731 
49732 
49733     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49734     void releaseProfilingLockKHR( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49735 
49736 
49737 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49738     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49739     VULKAN_HPP_NODISCARD Result resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49740 #else
49741     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49742     typename ResultValueType<void>::type resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49743 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49744 
49745 
49746 
49747 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49748     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49749     Result resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49750 #else
49751     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49752     typename ResultValueType<void>::type resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49753 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49754 
49755 
49756 
49757 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49758     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49759     VULKAN_HPP_NODISCARD Result resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49760 #else
49761     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49762     typename ResultValueType<void>::type resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49763 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49764 
49765 
49766 
49767     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49768     VULKAN_HPP_NODISCARD Result resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49769 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49770     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49771     typename ResultValueType<void>::type resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49772 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49773 
49774 
49775     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49776     void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49777 
49778     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49779     void resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49780 
49781 
49782     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49783     VULKAN_HPP_NODISCARD Result setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49784 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49785     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49786     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49787 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49788 
49789 
49790     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49791     VULKAN_HPP_NODISCARD Result setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49792 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49793     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49794     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49795 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49796 
49797 
49798 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49799     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49800     VULKAN_HPP_NODISCARD Result setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49801 #else
49802     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49803     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49805 
49806 
49807 
49808     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49809     void setHdrMetadataEXT( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, const VULKAN_HPP_NAMESPACE::HdrMetadataEXT* pMetadata, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49810 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49811     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49812     void setHdrMetadataEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains, ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
49813 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49814 
49815 
49816     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49817     void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49818 
49819 
49820 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
49821     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49822     VULKAN_HPP_NODISCARD Result setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49823 #else
49824     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49825     typename ResultValueType<void>::type setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49826 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49827 
49828 
49829 
49830     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49831     VULKAN_HPP_NODISCARD Result signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49832 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49833     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49834     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49835 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49836 
49837     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49838     VULKAN_HPP_NODISCARD Result signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49839 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49840     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49841     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49842 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49843 
49844 
49845     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49846     void trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49847 
49848     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49849     void trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49850 
49851 
49852     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49853     void uninitializePerformanceApiINTEL( Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49854 
49855 
49856     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49857     void unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49858 
49859 
49860     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49861     void updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49862 
49863     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49864     void updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49865 
49866 
49867     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49868     void updateDescriptorSets( uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VULKAN_HPP_NAMESPACE::CopyDescriptorSet* pDescriptorCopies, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49869 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49870     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49871     void updateDescriptorSets( ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites, ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49872 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49873 
49874 
49875     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49876     VULKAN_HPP_NODISCARD Result waitForFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49877 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49878     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49879     VULKAN_HPP_NODISCARD Result waitForFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49880 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49881 
49882 
49883     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49884     VULKAN_HPP_NODISCARD Result waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49885 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49886     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49887     VULKAN_HPP_NODISCARD Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49888 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49889 
49890     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49891     VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49892 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49893     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49894     VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49895 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49896 
49897 
49898 #ifdef VK_ENABLE_BETA_EXTENSIONS
49899     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49900     VULKAN_HPP_NODISCARD Result writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, void* pData, size_t stride, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
49901 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
49902     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49903     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type writeAccelerationStructuresPropertiesKHR(  ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const &accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, ArrayProxy<T> const &data, size_t stride, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
49904     template <typename T, typename Allocator = std::allocator<T>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49905     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<std::vector<T,Allocator>>::type writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49906     template <typename T, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
49907     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<T>::type writeAccelerationStructuresPropertyKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
49908 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
49909 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
49910 
operator VkDevice() const49911     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT
49912     {
49913       return m_device;
49914     }
49915 
operator bool() const49916     explicit operator bool() const VULKAN_HPP_NOEXCEPT
49917     {
49918       return m_device != VK_NULL_HANDLE;
49919     }
49920 
operator !() const49921     bool operator!() const VULKAN_HPP_NOEXCEPT
49922     {
49923       return m_device == VK_NULL_HANDLE;
49924     }
49925 
49926   private:
49927     VkDevice m_device;
49928   };
49929   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" );
49930 
49931   template <>
49932   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDevice>
49933   {
49934     using type = VULKAN_HPP_NAMESPACE::Device;
49935   };
49936 
49937   template <>
49938   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDevice>
49939   {
49940     using Type = VULKAN_HPP_NAMESPACE::Device;
49941   };
49942 
49943 
49944   template <>
49945   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice>
49946   {
49947     using Type = VULKAN_HPP_NAMESPACE::Device;
49948   };
49949 
49950 
49951   template <>
49952   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Device>
49953   {
49954     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
49955   };
49956 
49957   struct DisplayModeParametersKHR
49958   {
49959 
49960 
49961 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49962     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR(VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {}) VULKAN_HPP_NOEXCEPT
49963     : visibleRegion( visibleRegion_ ), refreshRate( refreshRate_ )
49964     {}
49965 
49966     VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
49967 
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49968     DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49969     {
49970       *this = rhs;
49971     }
49972 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
49973 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49974     DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49975     {
49976       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const *>( &rhs );
49977       return *this;
49978     }
49979 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49980     DisplayModeParametersKHR & operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
49981     {
49982       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModeParametersKHR ) );
49983       return *this;
49984     }
49985 
setVisibleRegionVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49986     DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT
49987     {
49988       visibleRegion = visibleRegion_;
49989       return *this;
49990     }
49991 
setRefreshRateVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49992     DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT
49993     {
49994       refreshRate = refreshRate_;
49995       return *this;
49996     }
49997 
49998 
operator VkDisplayModeParametersKHR const&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR49999     operator VkDisplayModeParametersKHR const&() const VULKAN_HPP_NOEXCEPT
50000     {
50001       return *reinterpret_cast<const VkDisplayModeParametersKHR*>( this );
50002     }
50003 
operator VkDisplayModeParametersKHR&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50004     operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT
50005     {
50006       return *reinterpret_cast<VkDisplayModeParametersKHR*>( this );
50007     }
50008 
50009 
50010 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50011     auto operator<=>( DisplayModeParametersKHR const& ) const = default;
50012 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50013     bool operator==( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50014     {
50015       return ( visibleRegion == rhs.visibleRegion )
50016           && ( refreshRate == rhs.refreshRate );
50017     }
50018 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR50019     bool operator!=( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50020     {
50021       return !operator==( rhs );
50022     }
50023 #endif
50024 
50025 
50026 
50027   public:
50028     VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {};
50029     uint32_t refreshRate = {};
50030 
50031   };
50032   static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" );
50033   static_assert( std::is_standard_layout<DisplayModeParametersKHR>::value, "struct wrapper is not a standard layout!" );
50034 
50035   struct DisplayModeCreateInfoKHR
50036   {
50037     static const bool allowDuplicate = false;
50038     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR;
50039 
50040 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50041     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT
50042     : flags( flags_ ), parameters( parameters_ )
50043     {}
50044 
50045     VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50046 
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50047     DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50048     {
50049       *this = rhs;
50050     }
50051 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50052 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50053     DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50054     {
50055       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const *>( &rhs );
50056       return *this;
50057     }
50058 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50059     DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50060     {
50061       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModeCreateInfoKHR ) );
50062       return *this;
50063     }
50064 
setPNextVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50065     DisplayModeCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
50066     {
50067       pNext = pNext_;
50068       return *this;
50069     }
50070 
setFlagsVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50071     DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
50072     {
50073       flags = flags_;
50074       return *this;
50075     }
50076 
setParametersVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50077     DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT
50078     {
50079       parameters = parameters_;
50080       return *this;
50081     }
50082 
50083 
operator VkDisplayModeCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50084     operator VkDisplayModeCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
50085     {
50086       return *reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( this );
50087     }
50088 
operator VkDisplayModeCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50089     operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
50090     {
50091       return *reinterpret_cast<VkDisplayModeCreateInfoKHR*>( this );
50092     }
50093 
50094 
50095 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50096     auto operator<=>( DisplayModeCreateInfoKHR const& ) const = default;
50097 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50098     bool operator==( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50099     {
50100       return ( sType == rhs.sType )
50101           && ( pNext == rhs.pNext )
50102           && ( flags == rhs.flags )
50103           && ( parameters == rhs.parameters );
50104     }
50105 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR50106     bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50107     {
50108       return !operator==( rhs );
50109     }
50110 #endif
50111 
50112 
50113 
50114   public:
50115     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
50116     const void* pNext = {};
50117     VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {};
50118     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
50119 
50120   };
50121   static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" );
50122   static_assert( std::is_standard_layout<DisplayModeCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
50123 
50124   template <>
50125   struct CppType<StructureType, StructureType::eDisplayModeCreateInfoKHR>
50126   {
50127     using Type = DisplayModeCreateInfoKHR;
50128   };
50129 
50130   class DisplayModeKHR
50131   {
50132   public:
50133     using CType = VkDisplayModeKHR;
50134 
50135     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR;
50136     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
50137 
50138   public:
DisplayModeKHR()50139     VULKAN_HPP_CONSTEXPR DisplayModeKHR() VULKAN_HPP_NOEXCEPT
50140       : m_displayModeKHR(VK_NULL_HANDLE)
50141     {}
50142 
DisplayModeKHR(std::nullptr_t)50143     VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
50144       : m_displayModeKHR(VK_NULL_HANDLE)
50145     {}
50146 
DisplayModeKHR(VkDisplayModeKHR displayModeKHR)50147     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT
50148       : m_displayModeKHR( displayModeKHR )
50149     {}
50150 
50151 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayModeKHR displayModeKHR)50152     DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR) VULKAN_HPP_NOEXCEPT
50153     {
50154       m_displayModeKHR = displayModeKHR;
50155       return *this;
50156     }
50157 #endif
50158 
operator =(std::nullptr_t)50159     DisplayModeKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
50160     {
50161       m_displayModeKHR = VK_NULL_HANDLE;
50162       return *this;
50163     }
50164 
50165 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50166     auto operator<=>( DisplayModeKHR const& ) const = default;
50167 #else
operator ==(DisplayModeKHR const & rhs) const50168     bool operator==( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
50169     {
50170       return m_displayModeKHR == rhs.m_displayModeKHR;
50171     }
50172 
operator !=(DisplayModeKHR const & rhs) const50173     bool operator!=(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
50174     {
50175       return m_displayModeKHR != rhs.m_displayModeKHR;
50176     }
50177 
operator <(DisplayModeKHR const & rhs) const50178     bool operator<(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
50179     {
50180       return m_displayModeKHR < rhs.m_displayModeKHR;
50181     }
50182 #endif
50183 
operator VkDisplayModeKHR() const50184     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const VULKAN_HPP_NOEXCEPT
50185     {
50186       return m_displayModeKHR;
50187     }
50188 
operator bool() const50189     explicit operator bool() const VULKAN_HPP_NOEXCEPT
50190     {
50191       return m_displayModeKHR != VK_NULL_HANDLE;
50192     }
50193 
operator !() const50194     bool operator!() const VULKAN_HPP_NOEXCEPT
50195     {
50196       return m_displayModeKHR == VK_NULL_HANDLE;
50197     }
50198 
50199   private:
50200     VkDisplayModeKHR m_displayModeKHR;
50201   };
50202   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" );
50203 
50204   template <>
50205   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDisplayModeKHR>
50206   {
50207     using type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
50208   };
50209 
50210   template <>
50211   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR>
50212   {
50213     using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
50214   };
50215 
50216 
50217   template <>
50218   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR>
50219   {
50220     using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR;
50221   };
50222 
50223 
50224   template <>
50225   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
50226   {
50227     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
50228   };
50229 
50230   struct ExtensionProperties
50231   {
50232 
50233 
50234 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties50235     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties(std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& extensionName_ = {}, uint32_t specVersion_ = {}) VULKAN_HPP_NOEXCEPT
50236     : extensionName( extensionName_ ), specVersion( specVersion_ )
50237     {}
50238 
50239     VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50240 
ExtensionPropertiesVULKAN_HPP_NAMESPACE::ExtensionProperties50241     ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50242     {
50243       *this = rhs;
50244     }
50245 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50246 
operator =VULKAN_HPP_NAMESPACE::ExtensionProperties50247     ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50248     {
50249       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExtensionProperties const *>( &rhs );
50250       return *this;
50251     }
50252 
operator =VULKAN_HPP_NAMESPACE::ExtensionProperties50253     ExtensionProperties & operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50254     {
50255       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExtensionProperties ) );
50256       return *this;
50257     }
50258 
50259 
operator VkExtensionProperties const&VULKAN_HPP_NAMESPACE::ExtensionProperties50260     operator VkExtensionProperties const&() const VULKAN_HPP_NOEXCEPT
50261     {
50262       return *reinterpret_cast<const VkExtensionProperties*>( this );
50263     }
50264 
operator VkExtensionProperties&VULKAN_HPP_NAMESPACE::ExtensionProperties50265     operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT
50266     {
50267       return *reinterpret_cast<VkExtensionProperties*>( this );
50268     }
50269 
50270 
50271 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50272     auto operator<=>( ExtensionProperties const& ) const = default;
50273 #else
operator ==VULKAN_HPP_NAMESPACE::ExtensionProperties50274     bool operator==( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50275     {
50276       return ( extensionName == rhs.extensionName )
50277           && ( specVersion == rhs.specVersion );
50278     }
50279 
operator !=VULKAN_HPP_NAMESPACE::ExtensionProperties50280     bool operator!=( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50281     {
50282       return !operator==( rhs );
50283     }
50284 #endif
50285 
50286 
50287 
50288   public:
50289     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> extensionName = {};
50290     uint32_t specVersion = {};
50291 
50292   };
50293   static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" );
50294   static_assert( std::is_standard_layout<ExtensionProperties>::value, "struct wrapper is not a standard layout!" );
50295 
50296   struct LayerProperties
50297   {
50298 
50299 
50300 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties50301     VULKAN_HPP_CONSTEXPR_14 LayerProperties(std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& layerName_ = {}, uint32_t specVersion_ = {}, uint32_t implementationVersion_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {}) VULKAN_HPP_NOEXCEPT
50302     : layerName( layerName_ ), specVersion( specVersion_ ), implementationVersion( implementationVersion_ ), description( description_ )
50303     {}
50304 
50305     VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50306 
LayerPropertiesVULKAN_HPP_NAMESPACE::LayerProperties50307     LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50308     {
50309       *this = rhs;
50310     }
50311 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50312 
operator =VULKAN_HPP_NAMESPACE::LayerProperties50313     LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50314     {
50315       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerProperties const *>( &rhs );
50316       return *this;
50317     }
50318 
operator =VULKAN_HPP_NAMESPACE::LayerProperties50319     LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
50320     {
50321       memcpy( static_cast<void *>( this ), &rhs, sizeof( LayerProperties ) );
50322       return *this;
50323     }
50324 
50325 
operator VkLayerProperties const&VULKAN_HPP_NAMESPACE::LayerProperties50326     operator VkLayerProperties const&() const VULKAN_HPP_NOEXCEPT
50327     {
50328       return *reinterpret_cast<const VkLayerProperties*>( this );
50329     }
50330 
operator VkLayerProperties&VULKAN_HPP_NAMESPACE::LayerProperties50331     operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
50332     {
50333       return *reinterpret_cast<VkLayerProperties*>( this );
50334     }
50335 
50336 
50337 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50338     auto operator<=>( LayerProperties const& ) const = default;
50339 #else
operator ==VULKAN_HPP_NAMESPACE::LayerProperties50340     bool operator==( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50341     {
50342       return ( layerName == rhs.layerName )
50343           && ( specVersion == rhs.specVersion )
50344           && ( implementationVersion == rhs.implementationVersion )
50345           && ( description == rhs.description );
50346     }
50347 
operator !=VULKAN_HPP_NAMESPACE::LayerProperties50348     bool operator!=( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
50349     {
50350       return !operator==( rhs );
50351     }
50352 #endif
50353 
50354 
50355 
50356   public:
50357     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layerName = {};
50358     uint32_t specVersion = {};
50359     uint32_t implementationVersion = {};
50360     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
50361 
50362   };
50363   static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" );
50364   static_assert( std::is_standard_layout<LayerProperties>::value, "struct wrapper is not a standard layout!" );
50365 
50366   struct PerformanceCounterKHR
50367   {
50368     static const bool allowDuplicate = false;
50369     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR;
50370 
50371 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR50372     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit_ = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric, VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope_ = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer, VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32, std::array<uint8_t,VK_UUID_SIZE> const& uuid_ = {}) VULKAN_HPP_NOEXCEPT
50373     : unit( unit_ ), scope( scope_ ), storage( storage_ ), uuid( uuid_ )
50374     {}
50375 
50376     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50377 
PerformanceCounterKHRVULKAN_HPP_NAMESPACE::PerformanceCounterKHR50378     PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50379     {
50380       *this = rhs;
50381     }
50382 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50383 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50384     PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50385     {
50386       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const *>( &rhs );
50387       return *this;
50388     }
50389 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50390     PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50391     {
50392       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceCounterKHR ) );
50393       return *this;
50394     }
50395 
50396 
operator VkPerformanceCounterKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50397     operator VkPerformanceCounterKHR const&() const VULKAN_HPP_NOEXCEPT
50398     {
50399       return *reinterpret_cast<const VkPerformanceCounterKHR*>( this );
50400     }
50401 
operator VkPerformanceCounterKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50402     operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
50403     {
50404       return *reinterpret_cast<VkPerformanceCounterKHR*>( this );
50405     }
50406 
50407 
50408 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50409     auto operator<=>( PerformanceCounterKHR const& ) const = default;
50410 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50411     bool operator==( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50412     {
50413       return ( sType == rhs.sType )
50414           && ( pNext == rhs.pNext )
50415           && ( unit == rhs.unit )
50416           && ( scope == rhs.scope )
50417           && ( storage == rhs.storage )
50418           && ( uuid == rhs.uuid );
50419     }
50420 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterKHR50421     bool operator!=( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50422     {
50423       return !operator==( rhs );
50424     }
50425 #endif
50426 
50427 
50428 
50429   public:
50430     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR;
50431     const void* pNext = {};
50432     VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric;
50433     VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer;
50434     VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32;
50435     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> uuid = {};
50436 
50437   };
50438   static_assert( sizeof( PerformanceCounterKHR ) == sizeof( VkPerformanceCounterKHR ), "struct and wrapper have different size!" );
50439   static_assert( std::is_standard_layout<PerformanceCounterKHR>::value, "struct wrapper is not a standard layout!" );
50440 
50441   template <>
50442   struct CppType<StructureType, StructureType::ePerformanceCounterKHR>
50443   {
50444     using Type = PerformanceCounterKHR;
50445   };
50446 
50447   struct PerformanceCounterDescriptionKHR
50448   {
50449     static const bool allowDuplicate = false;
50450     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR;
50451 
50452 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50453     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& category_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {}) VULKAN_HPP_NOEXCEPT
50454     : flags( flags_ ), name( name_ ), category( category_ ), description( description_ )
50455     {}
50456 
50457     VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50458 
PerformanceCounterDescriptionKHRVULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50459     PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50460     {
50461       *this = rhs;
50462     }
50463 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50464 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50465     PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50466     {
50467       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const *>( &rhs );
50468       return *this;
50469     }
50470 
operator =VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50471     PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50472     {
50473       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceCounterDescriptionKHR ) );
50474       return *this;
50475     }
50476 
50477 
operator VkPerformanceCounterDescriptionKHR const&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50478     operator VkPerformanceCounterDescriptionKHR const&() const VULKAN_HPP_NOEXCEPT
50479     {
50480       return *reinterpret_cast<const VkPerformanceCounterDescriptionKHR*>( this );
50481     }
50482 
operator VkPerformanceCounterDescriptionKHR&VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50483     operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
50484     {
50485       return *reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( this );
50486     }
50487 
50488 
50489 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50490     auto operator<=>( PerformanceCounterDescriptionKHR const& ) const = default;
50491 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50492     bool operator==( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50493     {
50494       return ( sType == rhs.sType )
50495           && ( pNext == rhs.pNext )
50496           && ( flags == rhs.flags )
50497           && ( name == rhs.name )
50498           && ( category == rhs.category )
50499           && ( description == rhs.description );
50500     }
50501 
operator !=VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR50502     bool operator!=( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50503     {
50504       return !operator==( rhs );
50505     }
50506 #endif
50507 
50508 
50509 
50510   public:
50511     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR;
50512     const void* pNext = {};
50513     VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {};
50514     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
50515     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> category = {};
50516     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
50517 
50518   };
50519   static_assert( sizeof( PerformanceCounterDescriptionKHR ) == sizeof( VkPerformanceCounterDescriptionKHR ), "struct and wrapper have different size!" );
50520   static_assert( std::is_standard_layout<PerformanceCounterDescriptionKHR>::value, "struct wrapper is not a standard layout!" );
50521 
50522   template <>
50523   struct CppType<StructureType, StructureType::ePerformanceCounterDescriptionKHR>
50524   {
50525     using Type = PerformanceCounterDescriptionKHR;
50526   };
50527 
50528   struct DisplayModePropertiesKHR
50529   {
50530 
50531 
50532 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50533     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT
50534     : displayMode( displayMode_ ), parameters( parameters_ )
50535     {}
50536 
50537     VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50538 
DisplayModePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50539     DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50540     {
50541       *this = rhs;
50542     }
50543 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50544 
operator =VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50545     DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50546     {
50547       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const *>( &rhs );
50548       return *this;
50549     }
50550 
operator =VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50551     DisplayModePropertiesKHR & operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50552     {
50553       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModePropertiesKHR ) );
50554       return *this;
50555     }
50556 
50557 
operator VkDisplayModePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50558     operator VkDisplayModePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
50559     {
50560       return *reinterpret_cast<const VkDisplayModePropertiesKHR*>( this );
50561     }
50562 
operator VkDisplayModePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50563     operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT
50564     {
50565       return *reinterpret_cast<VkDisplayModePropertiesKHR*>( this );
50566     }
50567 
50568 
50569 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50570     auto operator<=>( DisplayModePropertiesKHR const& ) const = default;
50571 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50572     bool operator==( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50573     {
50574       return ( displayMode == rhs.displayMode )
50575           && ( parameters == rhs.parameters );
50576     }
50577 
operator !=VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR50578     bool operator!=( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50579     {
50580       return !operator==( rhs );
50581     }
50582 #endif
50583 
50584 
50585 
50586   public:
50587     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
50588     VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
50589 
50590   };
50591   static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" );
50592   static_assert( std::is_standard_layout<DisplayModePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
50593 
50594   struct DisplayModeProperties2KHR
50595   {
50596     static const bool allowDuplicate = false;
50597     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR;
50598 
50599 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50600     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {}) VULKAN_HPP_NOEXCEPT
50601     : displayModeProperties( displayModeProperties_ )
50602     {}
50603 
50604     VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50605 
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50606     DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50607     {
50608       *this = rhs;
50609     }
50610 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50611 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50612     DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50613     {
50614       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const *>( &rhs );
50615       return *this;
50616     }
50617 
operator =VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50618     DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50619     {
50620       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayModeProperties2KHR ) );
50621       return *this;
50622     }
50623 
50624 
operator VkDisplayModeProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50625     operator VkDisplayModeProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
50626     {
50627       return *reinterpret_cast<const VkDisplayModeProperties2KHR*>( this );
50628     }
50629 
operator VkDisplayModeProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50630     operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT
50631     {
50632       return *reinterpret_cast<VkDisplayModeProperties2KHR*>( this );
50633     }
50634 
50635 
50636 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50637     auto operator<=>( DisplayModeProperties2KHR const& ) const = default;
50638 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50639     bool operator==( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50640     {
50641       return ( sType == rhs.sType )
50642           && ( pNext == rhs.pNext )
50643           && ( displayModeProperties == rhs.displayModeProperties );
50644     }
50645 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR50646     bool operator!=( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50647     {
50648       return !operator==( rhs );
50649     }
50650 #endif
50651 
50652 
50653 
50654   public:
50655     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR;
50656     void* pNext = {};
50657     VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {};
50658 
50659   };
50660   static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" );
50661   static_assert( std::is_standard_layout<DisplayModeProperties2KHR>::value, "struct wrapper is not a standard layout!" );
50662 
50663   template <>
50664   struct CppType<StructureType, StructureType::eDisplayModeProperties2KHR>
50665   {
50666     using Type = DisplayModeProperties2KHR;
50667   };
50668 
50669   struct DisplayPlaneInfo2KHR
50670   {
50671     static const bool allowDuplicate = false;
50672     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR;
50673 
50674 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50675     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}) VULKAN_HPP_NOEXCEPT
50676     : mode( mode_ ), planeIndex( planeIndex_ )
50677     {}
50678 
50679     VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50680 
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50681     DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50682     {
50683       *this = rhs;
50684     }
50685 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50686 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50687     DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50688     {
50689       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const *>( &rhs );
50690       return *this;
50691     }
50692 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50693     DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50694     {
50695       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneInfo2KHR ) );
50696       return *this;
50697     }
50698 
setPNextVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50699     DisplayPlaneInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
50700     {
50701       pNext = pNext_;
50702       return *this;
50703     }
50704 
setModeVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50705     DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
50706     {
50707       mode = mode_;
50708       return *this;
50709     }
50710 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50711     DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
50712     {
50713       planeIndex = planeIndex_;
50714       return *this;
50715     }
50716 
50717 
operator VkDisplayPlaneInfo2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50718     operator VkDisplayPlaneInfo2KHR const&() const VULKAN_HPP_NOEXCEPT
50719     {
50720       return *reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( this );
50721     }
50722 
operator VkDisplayPlaneInfo2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50723     operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT
50724     {
50725       return *reinterpret_cast<VkDisplayPlaneInfo2KHR*>( this );
50726     }
50727 
50728 
50729 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50730     auto operator<=>( DisplayPlaneInfo2KHR const& ) const = default;
50731 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50732     bool operator==( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50733     {
50734       return ( sType == rhs.sType )
50735           && ( pNext == rhs.pNext )
50736           && ( mode == rhs.mode )
50737           && ( planeIndex == rhs.planeIndex );
50738     }
50739 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR50740     bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50741     {
50742       return !operator==( rhs );
50743     }
50744 #endif
50745 
50746 
50747 
50748   public:
50749     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
50750     const void* pNext = {};
50751     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {};
50752     uint32_t planeIndex = {};
50753 
50754   };
50755   static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" );
50756   static_assert( std::is_standard_layout<DisplayPlaneInfo2KHR>::value, "struct wrapper is not a standard layout!" );
50757 
50758   template <>
50759   struct CppType<StructureType, StructureType::eDisplayPlaneInfo2KHR>
50760   {
50761     using Type = DisplayPlaneInfo2KHR;
50762   };
50763 
50764   struct DisplayPlaneCapabilitiesKHR
50765   {
50766 
50767 
50768 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50769     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha_ = {}, VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition_ = {}, VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent_ = {}, VULKAN_HPP_NAMESPACE::Offset2D minDstPosition_ = {}, VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {}) VULKAN_HPP_NOEXCEPT
50770     : supportedAlpha( supportedAlpha_ ), minSrcPosition( minSrcPosition_ ), maxSrcPosition( maxSrcPosition_ ), minSrcExtent( minSrcExtent_ ), maxSrcExtent( maxSrcExtent_ ), minDstPosition( minDstPosition_ ), maxDstPosition( maxDstPosition_ ), minDstExtent( minDstExtent_ ), maxDstExtent( maxDstExtent_ )
50771     {}
50772 
50773     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50774 
DisplayPlaneCapabilitiesKHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50775     DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50776     {
50777       *this = rhs;
50778     }
50779 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50780 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50781     DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50782     {
50783       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const *>( &rhs );
50784       return *this;
50785     }
50786 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50787     DisplayPlaneCapabilitiesKHR & operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50788     {
50789       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneCapabilitiesKHR ) );
50790       return *this;
50791     }
50792 
50793 
operator VkDisplayPlaneCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50794     operator VkDisplayPlaneCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
50795     {
50796       return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR*>( this );
50797     }
50798 
operator VkDisplayPlaneCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50799     operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
50800     {
50801       return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( this );
50802     }
50803 
50804 
50805 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50806     auto operator<=>( DisplayPlaneCapabilitiesKHR const& ) const = default;
50807 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50808     bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50809     {
50810       return ( supportedAlpha == rhs.supportedAlpha )
50811           && ( minSrcPosition == rhs.minSrcPosition )
50812           && ( maxSrcPosition == rhs.maxSrcPosition )
50813           && ( minSrcExtent == rhs.minSrcExtent )
50814           && ( maxSrcExtent == rhs.maxSrcExtent )
50815           && ( minDstPosition == rhs.minDstPosition )
50816           && ( maxDstPosition == rhs.maxDstPosition )
50817           && ( minDstExtent == rhs.minDstExtent )
50818           && ( maxDstExtent == rhs.maxDstExtent );
50819     }
50820 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR50821     bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50822     {
50823       return !operator==( rhs );
50824     }
50825 #endif
50826 
50827 
50828 
50829   public:
50830     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {};
50831     VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {};
50832     VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {};
50833     VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {};
50834     VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {};
50835     VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {};
50836     VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {};
50837     VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {};
50838     VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {};
50839 
50840   };
50841   static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" );
50842   static_assert( std::is_standard_layout<DisplayPlaneCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
50843 
50844   struct DisplayPlaneCapabilities2KHR
50845   {
50846     static const bool allowDuplicate = false;
50847     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR;
50848 
50849 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50850     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR(VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {}) VULKAN_HPP_NOEXCEPT
50851     : capabilities( capabilities_ )
50852     {}
50853 
50854     VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50855 
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50856     DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50857     {
50858       *this = rhs;
50859     }
50860 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50861 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50862     DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50863     {
50864       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const *>( &rhs );
50865       return *this;
50866     }
50867 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50868     DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50869     {
50870       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneCapabilities2KHR ) );
50871       return *this;
50872     }
50873 
50874 
operator VkDisplayPlaneCapabilities2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50875     operator VkDisplayPlaneCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
50876     {
50877       return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR*>( this );
50878     }
50879 
operator VkDisplayPlaneCapabilities2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50880     operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
50881     {
50882       return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( this );
50883     }
50884 
50885 
50886 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50887     auto operator<=>( DisplayPlaneCapabilities2KHR const& ) const = default;
50888 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50889     bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50890     {
50891       return ( sType == rhs.sType )
50892           && ( pNext == rhs.pNext )
50893           && ( capabilities == rhs.capabilities );
50894     }
50895 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR50896     bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50897     {
50898       return !operator==( rhs );
50899     }
50900 #endif
50901 
50902 
50903 
50904   public:
50905     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
50906     void* pNext = {};
50907     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {};
50908 
50909   };
50910   static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" );
50911   static_assert( std::is_standard_layout<DisplayPlaneCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
50912 
50913   template <>
50914   struct CppType<StructureType, StructureType::eDisplayPlaneCapabilities2KHR>
50915   {
50916     using Type = DisplayPlaneCapabilities2KHR;
50917   };
50918 
50919   struct DisplayPlanePropertiesKHR
50920   {
50921 
50922 
50923 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50924     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {}, uint32_t currentStackIndex_ = {}) VULKAN_HPP_NOEXCEPT
50925     : currentDisplay( currentDisplay_ ), currentStackIndex( currentStackIndex_ )
50926     {}
50927 
50928     VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50929 
DisplayPlanePropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50930     DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50931     {
50932       *this = rhs;
50933     }
50934 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
50935 
operator =VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50936     DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50937     {
50938       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const *>( &rhs );
50939       return *this;
50940     }
50941 
operator =VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50942     DisplayPlanePropertiesKHR & operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
50943     {
50944       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlanePropertiesKHR ) );
50945       return *this;
50946     }
50947 
50948 
operator VkDisplayPlanePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50949     operator VkDisplayPlanePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
50950     {
50951       return *reinterpret_cast<const VkDisplayPlanePropertiesKHR*>( this );
50952     }
50953 
operator VkDisplayPlanePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50954     operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT
50955     {
50956       return *reinterpret_cast<VkDisplayPlanePropertiesKHR*>( this );
50957     }
50958 
50959 
50960 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
50961     auto operator<=>( DisplayPlanePropertiesKHR const& ) const = default;
50962 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50963     bool operator==( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50964     {
50965       return ( currentDisplay == rhs.currentDisplay )
50966           && ( currentStackIndex == rhs.currentStackIndex );
50967     }
50968 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR50969     bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
50970     {
50971       return !operator==( rhs );
50972     }
50973 #endif
50974 
50975 
50976 
50977   public:
50978     VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {};
50979     uint32_t currentStackIndex = {};
50980 
50981   };
50982   static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" );
50983   static_assert( std::is_standard_layout<DisplayPlanePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
50984 
50985   struct DisplayPlaneProperties2KHR
50986   {
50987     static const bool allowDuplicate = false;
50988     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR;
50989 
50990 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50991     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {}) VULKAN_HPP_NOEXCEPT
50992     : displayPlaneProperties( displayPlaneProperties_ )
50993     {}
50994 
50995     VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
50996 
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR50997     DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
50998     {
50999       *this = rhs;
51000     }
51001 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51002 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51003     DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51004     {
51005       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const *>( &rhs );
51006       return *this;
51007     }
51008 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51009     DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51010     {
51011       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPlaneProperties2KHR ) );
51012       return *this;
51013     }
51014 
51015 
operator VkDisplayPlaneProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51016     operator VkDisplayPlaneProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
51017     {
51018       return *reinterpret_cast<const VkDisplayPlaneProperties2KHR*>( this );
51019     }
51020 
operator VkDisplayPlaneProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51021     operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT
51022     {
51023       return *reinterpret_cast<VkDisplayPlaneProperties2KHR*>( this );
51024     }
51025 
51026 
51027 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51028     auto operator<=>( DisplayPlaneProperties2KHR const& ) const = default;
51029 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51030     bool operator==( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51031     {
51032       return ( sType == rhs.sType )
51033           && ( pNext == rhs.pNext )
51034           && ( displayPlaneProperties == rhs.displayPlaneProperties );
51035     }
51036 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR51037     bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51038     {
51039       return !operator==( rhs );
51040     }
51041 #endif
51042 
51043 
51044 
51045   public:
51046     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
51047     void* pNext = {};
51048     VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {};
51049 
51050   };
51051   static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" );
51052   static_assert( std::is_standard_layout<DisplayPlaneProperties2KHR>::value, "struct wrapper is not a standard layout!" );
51053 
51054   template <>
51055   struct CppType<StructureType, StructureType::eDisplayPlaneProperties2KHR>
51056   {
51057     using Type = DisplayPlaneProperties2KHR;
51058   };
51059 
51060   struct DisplayPropertiesKHR
51061   {
51062 
51063 
51064 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51065     VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display_ = {}, const char* displayName_ = {}, VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions_ = {}, VULKAN_HPP_NAMESPACE::Extent2D physicalResolution_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {}) VULKAN_HPP_NOEXCEPT
51066     : display( display_ ), displayName( displayName_ ), physicalDimensions( physicalDimensions_ ), physicalResolution( physicalResolution_ ), supportedTransforms( supportedTransforms_ ), planeReorderPossible( planeReorderPossible_ ), persistentContent( persistentContent_ )
51067     {}
51068 
51069     VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51070 
DisplayPropertiesKHRVULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51071     DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51072     {
51073       *this = rhs;
51074     }
51075 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51076 
operator =VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51077     DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51078     {
51079       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const *>( &rhs );
51080       return *this;
51081     }
51082 
operator =VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51083     DisplayPropertiesKHR & operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
51084     {
51085       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPropertiesKHR ) );
51086       return *this;
51087     }
51088 
51089 
operator VkDisplayPropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51090     operator VkDisplayPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
51091     {
51092       return *reinterpret_cast<const VkDisplayPropertiesKHR*>( this );
51093     }
51094 
operator VkDisplayPropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51095     operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT
51096     {
51097       return *reinterpret_cast<VkDisplayPropertiesKHR*>( this );
51098     }
51099 
51100 
51101 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51102     auto operator<=>( DisplayPropertiesKHR const& ) const = default;
51103 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51104     bool operator==( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51105     {
51106       return ( display == rhs.display )
51107           && ( displayName == rhs.displayName )
51108           && ( physicalDimensions == rhs.physicalDimensions )
51109           && ( physicalResolution == rhs.physicalResolution )
51110           && ( supportedTransforms == rhs.supportedTransforms )
51111           && ( planeReorderPossible == rhs.planeReorderPossible )
51112           && ( persistentContent == rhs.persistentContent );
51113     }
51114 
operator !=VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR51115     bool operator!=( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51116     {
51117       return !operator==( rhs );
51118     }
51119 #endif
51120 
51121 
51122 
51123   public:
51124     VULKAN_HPP_NAMESPACE::DisplayKHR display = {};
51125     const char* displayName = {};
51126     VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {};
51127     VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {};
51128     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
51129     VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {};
51130     VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {};
51131 
51132   };
51133   static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" );
51134   static_assert( std::is_standard_layout<DisplayPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
51135 
51136   struct DisplayProperties2KHR
51137   {
51138     static const bool allowDuplicate = false;
51139     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR;
51140 
51141 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR51142     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {}) VULKAN_HPP_NOEXCEPT
51143     : displayProperties( displayProperties_ )
51144     {}
51145 
51146     VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51147 
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::DisplayProperties2KHR51148     DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51149     {
51150       *this = rhs;
51151     }
51152 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51153 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51154     DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51155     {
51156       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const *>( &rhs );
51157       return *this;
51158     }
51159 
operator =VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51160     DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
51161     {
51162       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayProperties2KHR ) );
51163       return *this;
51164     }
51165 
51166 
operator VkDisplayProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51167     operator VkDisplayProperties2KHR const&() const VULKAN_HPP_NOEXCEPT
51168     {
51169       return *reinterpret_cast<const VkDisplayProperties2KHR*>( this );
51170     }
51171 
operator VkDisplayProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51172     operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT
51173     {
51174       return *reinterpret_cast<VkDisplayProperties2KHR*>( this );
51175     }
51176 
51177 
51178 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51179     auto operator<=>( DisplayProperties2KHR const& ) const = default;
51180 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51181     bool operator==( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51182     {
51183       return ( sType == rhs.sType )
51184           && ( pNext == rhs.pNext )
51185           && ( displayProperties == rhs.displayProperties );
51186     }
51187 
operator !=VULKAN_HPP_NAMESPACE::DisplayProperties2KHR51188     bool operator!=( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
51189     {
51190       return !operator==( rhs );
51191     }
51192 #endif
51193 
51194 
51195 
51196   public:
51197     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR;
51198     void* pNext = {};
51199     VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {};
51200 
51201   };
51202   static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" );
51203   static_assert( std::is_standard_layout<DisplayProperties2KHR>::value, "struct wrapper is not a standard layout!" );
51204 
51205   template <>
51206   struct CppType<StructureType, StructureType::eDisplayProperties2KHR>
51207   {
51208     using Type = DisplayProperties2KHR;
51209   };
51210 
51211   struct PhysicalDeviceExternalBufferInfo
51212   {
51213     static const bool allowDuplicate = false;
51214     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo;
51215 
51216 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51217     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo(VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
51218     : flags( flags_ ), usage( usage_ ), handleType( handleType_ )
51219     {}
51220 
51221     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51222 
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51223     PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51224     {
51225       *this = rhs;
51226     }
51227 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51228 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51229     PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51230     {
51231       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const *>( &rhs );
51232       return *this;
51233     }
51234 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51235     PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51236     {
51237       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalBufferInfo ) );
51238       return *this;
51239     }
51240 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51241     PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51242     {
51243       pNext = pNext_;
51244       return *this;
51245     }
51246 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51247     PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
51248     {
51249       flags = flags_;
51250       return *this;
51251     }
51252 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51253     PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
51254     {
51255       usage = usage_;
51256       return *this;
51257     }
51258 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51259     PhysicalDeviceExternalBufferInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
51260     {
51261       handleType = handleType_;
51262       return *this;
51263     }
51264 
51265 
operator VkPhysicalDeviceExternalBufferInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51266     operator VkPhysicalDeviceExternalBufferInfo const&() const VULKAN_HPP_NOEXCEPT
51267     {
51268       return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( this );
51269     }
51270 
operator VkPhysicalDeviceExternalBufferInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51271     operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
51272     {
51273       return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>( this );
51274     }
51275 
51276 
51277 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51278     auto operator<=>( PhysicalDeviceExternalBufferInfo const& ) const = default;
51279 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51280     bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51281     {
51282       return ( sType == rhs.sType )
51283           && ( pNext == rhs.pNext )
51284           && ( flags == rhs.flags )
51285           && ( usage == rhs.usage )
51286           && ( handleType == rhs.handleType );
51287     }
51288 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo51289     bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51290     {
51291       return !operator==( rhs );
51292     }
51293 #endif
51294 
51295 
51296 
51297   public:
51298     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
51299     const void* pNext = {};
51300     VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
51301     VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
51302     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
51303 
51304   };
51305   static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" );
51306   static_assert( std::is_standard_layout<PhysicalDeviceExternalBufferInfo>::value, "struct wrapper is not a standard layout!" );
51307 
51308   template <>
51309   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalBufferInfo>
51310   {
51311     using Type = PhysicalDeviceExternalBufferInfo;
51312   };
51313   using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
51314 
51315   struct ExternalMemoryProperties
51316   {
51317 
51318 
51319 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties51320     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT
51321     : externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
51322     {}
51323 
51324     VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51325 
ExternalMemoryPropertiesVULKAN_HPP_NAMESPACE::ExternalMemoryProperties51326     ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51327     {
51328       *this = rhs;
51329     }
51330 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51331 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51332     ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51333     {
51334       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const *>( &rhs );
51335       return *this;
51336     }
51337 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51338     ExternalMemoryProperties & operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51339     {
51340       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryProperties ) );
51341       return *this;
51342     }
51343 
51344 
operator VkExternalMemoryProperties const&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51345     operator VkExternalMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
51346     {
51347       return *reinterpret_cast<const VkExternalMemoryProperties*>( this );
51348     }
51349 
operator VkExternalMemoryProperties&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51350     operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT
51351     {
51352       return *reinterpret_cast<VkExternalMemoryProperties*>( this );
51353     }
51354 
51355 
51356 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51357     auto operator<=>( ExternalMemoryProperties const& ) const = default;
51358 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51359     bool operator==( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51360     {
51361       return ( externalMemoryFeatures == rhs.externalMemoryFeatures )
51362           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51363           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
51364     }
51365 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryProperties51366     bool operator!=( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51367     {
51368       return !operator==( rhs );
51369     }
51370 #endif
51371 
51372 
51373 
51374   public:
51375     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {};
51376     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {};
51377     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {};
51378 
51379   };
51380   static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" );
51381   static_assert( std::is_standard_layout<ExternalMemoryProperties>::value, "struct wrapper is not a standard layout!" );
51382   using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
51383 
51384   struct ExternalBufferProperties
51385   {
51386     static const bool allowDuplicate = false;
51387     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties;
51388 
51389 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties51390     VULKAN_HPP_CONSTEXPR ExternalBufferProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
51391     : externalMemoryProperties( externalMemoryProperties_ )
51392     {}
51393 
51394     VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51395 
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::ExternalBufferProperties51396     ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51397     {
51398       *this = rhs;
51399     }
51400 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51401 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties51402     ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51403     {
51404       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalBufferProperties const *>( &rhs );
51405       return *this;
51406     }
51407 
operator =VULKAN_HPP_NAMESPACE::ExternalBufferProperties51408     ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51409     {
51410       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalBufferProperties ) );
51411       return *this;
51412     }
51413 
51414 
operator VkExternalBufferProperties const&VULKAN_HPP_NAMESPACE::ExternalBufferProperties51415     operator VkExternalBufferProperties const&() const VULKAN_HPP_NOEXCEPT
51416     {
51417       return *reinterpret_cast<const VkExternalBufferProperties*>( this );
51418     }
51419 
operator VkExternalBufferProperties&VULKAN_HPP_NAMESPACE::ExternalBufferProperties51420     operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT
51421     {
51422       return *reinterpret_cast<VkExternalBufferProperties*>( this );
51423     }
51424 
51425 
51426 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51427     auto operator<=>( ExternalBufferProperties const& ) const = default;
51428 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalBufferProperties51429     bool operator==( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51430     {
51431       return ( sType == rhs.sType )
51432           && ( pNext == rhs.pNext )
51433           && ( externalMemoryProperties == rhs.externalMemoryProperties );
51434     }
51435 
operator !=VULKAN_HPP_NAMESPACE::ExternalBufferProperties51436     bool operator!=( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51437     {
51438       return !operator==( rhs );
51439     }
51440 #endif
51441 
51442 
51443 
51444   public:
51445     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties;
51446     void* pNext = {};
51447     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
51448 
51449   };
51450   static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" );
51451   static_assert( std::is_standard_layout<ExternalBufferProperties>::value, "struct wrapper is not a standard layout!" );
51452 
51453   template <>
51454   struct CppType<StructureType, StructureType::eExternalBufferProperties>
51455   {
51456     using Type = ExternalBufferProperties;
51457   };
51458   using ExternalBufferPropertiesKHR = ExternalBufferProperties;
51459 
51460   struct PhysicalDeviceExternalFenceInfo
51461   {
51462     static const bool allowDuplicate = false;
51463     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo;
51464 
51465 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51466     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
51467     : handleType( handleType_ )
51468     {}
51469 
51470     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51471 
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51472     PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51473     {
51474       *this = rhs;
51475     }
51476 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51477 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51478     PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51479     {
51480       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const *>( &rhs );
51481       return *this;
51482     }
51483 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51484     PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51485     {
51486       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalFenceInfo ) );
51487       return *this;
51488     }
51489 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51490     PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51491     {
51492       pNext = pNext_;
51493       return *this;
51494     }
51495 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51496     PhysicalDeviceExternalFenceInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
51497     {
51498       handleType = handleType_;
51499       return *this;
51500     }
51501 
51502 
operator VkPhysicalDeviceExternalFenceInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51503     operator VkPhysicalDeviceExternalFenceInfo const&() const VULKAN_HPP_NOEXCEPT
51504     {
51505       return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( this );
51506     }
51507 
operator VkPhysicalDeviceExternalFenceInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51508     operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
51509     {
51510       return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>( this );
51511     }
51512 
51513 
51514 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51515     auto operator<=>( PhysicalDeviceExternalFenceInfo const& ) const = default;
51516 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51517     bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51518     {
51519       return ( sType == rhs.sType )
51520           && ( pNext == rhs.pNext )
51521           && ( handleType == rhs.handleType );
51522     }
51523 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo51524     bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51525     {
51526       return !operator==( rhs );
51527     }
51528 #endif
51529 
51530 
51531 
51532   public:
51533     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
51534     const void* pNext = {};
51535     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
51536 
51537   };
51538   static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" );
51539   static_assert( std::is_standard_layout<PhysicalDeviceExternalFenceInfo>::value, "struct wrapper is not a standard layout!" );
51540 
51541   template <>
51542   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFenceInfo>
51543   {
51544     using Type = PhysicalDeviceExternalFenceInfo;
51545   };
51546   using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
51547 
51548   struct ExternalFenceProperties
51549   {
51550     static const bool allowDuplicate = false;
51551     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties;
51552 
51553 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties51554     VULKAN_HPP_CONSTEXPR ExternalFenceProperties(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {}) VULKAN_HPP_NOEXCEPT
51555     : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalFenceFeatures( externalFenceFeatures_ )
51556     {}
51557 
51558     VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51559 
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::ExternalFenceProperties51560     ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51561     {
51562       *this = rhs;
51563     }
51564 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51565 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties51566     ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51567     {
51568       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFenceProperties const *>( &rhs );
51569       return *this;
51570     }
51571 
operator =VULKAN_HPP_NAMESPACE::ExternalFenceProperties51572     ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51573     {
51574       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalFenceProperties ) );
51575       return *this;
51576     }
51577 
51578 
operator VkExternalFenceProperties const&VULKAN_HPP_NAMESPACE::ExternalFenceProperties51579     operator VkExternalFenceProperties const&() const VULKAN_HPP_NOEXCEPT
51580     {
51581       return *reinterpret_cast<const VkExternalFenceProperties*>( this );
51582     }
51583 
operator VkExternalFenceProperties&VULKAN_HPP_NAMESPACE::ExternalFenceProperties51584     operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT
51585     {
51586       return *reinterpret_cast<VkExternalFenceProperties*>( this );
51587     }
51588 
51589 
51590 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51591     auto operator<=>( ExternalFenceProperties const& ) const = default;
51592 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFenceProperties51593     bool operator==( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51594     {
51595       return ( sType == rhs.sType )
51596           && ( pNext == rhs.pNext )
51597           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51598           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
51599           && ( externalFenceFeatures == rhs.externalFenceFeatures );
51600     }
51601 
operator !=VULKAN_HPP_NAMESPACE::ExternalFenceProperties51602     bool operator!=( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51603     {
51604       return !operator==( rhs );
51605     }
51606 #endif
51607 
51608 
51609 
51610   public:
51611     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties;
51612     void* pNext = {};
51613     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {};
51614     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {};
51615     VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {};
51616 
51617   };
51618   static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" );
51619   static_assert( std::is_standard_layout<ExternalFenceProperties>::value, "struct wrapper is not a standard layout!" );
51620 
51621   template <>
51622   struct CppType<StructureType, StructureType::eExternalFenceProperties>
51623   {
51624     using Type = ExternalFenceProperties;
51625   };
51626   using ExternalFencePropertiesKHR = ExternalFenceProperties;
51627 
51628   struct ImageFormatProperties
51629   {
51630 
51631 
51632 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties51633     VULKAN_HPP_CONSTEXPR ImageFormatProperties(VULKAN_HPP_NAMESPACE::Extent3D maxExtent_ = {}, uint32_t maxMipLevels_ = {}, uint32_t maxArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {}) VULKAN_HPP_NOEXCEPT
51634     : maxExtent( maxExtent_ ), maxMipLevels( maxMipLevels_ ), maxArrayLayers( maxArrayLayers_ ), sampleCounts( sampleCounts_ ), maxResourceSize( maxResourceSize_ )
51635     {}
51636 
51637     VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51638 
ImageFormatPropertiesVULKAN_HPP_NAMESPACE::ImageFormatProperties51639     ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51640     {
51641       *this = rhs;
51642     }
51643 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51644 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties51645     ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51646     {
51647       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties const *>( &rhs );
51648       return *this;
51649     }
51650 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties51651     ImageFormatProperties & operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51652     {
51653       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatProperties ) );
51654       return *this;
51655     }
51656 
51657 
operator VkImageFormatProperties const&VULKAN_HPP_NAMESPACE::ImageFormatProperties51658     operator VkImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
51659     {
51660       return *reinterpret_cast<const VkImageFormatProperties*>( this );
51661     }
51662 
operator VkImageFormatProperties&VULKAN_HPP_NAMESPACE::ImageFormatProperties51663     operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT
51664     {
51665       return *reinterpret_cast<VkImageFormatProperties*>( this );
51666     }
51667 
51668 
51669 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51670     auto operator<=>( ImageFormatProperties const& ) const = default;
51671 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties51672     bool operator==( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51673     {
51674       return ( maxExtent == rhs.maxExtent )
51675           && ( maxMipLevels == rhs.maxMipLevels )
51676           && ( maxArrayLayers == rhs.maxArrayLayers )
51677           && ( sampleCounts == rhs.sampleCounts )
51678           && ( maxResourceSize == rhs.maxResourceSize );
51679     }
51680 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties51681     bool operator!=( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51682     {
51683       return !operator==( rhs );
51684     }
51685 #endif
51686 
51687 
51688 
51689   public:
51690     VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {};
51691     uint32_t maxMipLevels = {};
51692     uint32_t maxArrayLayers = {};
51693     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
51694     VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {};
51695 
51696   };
51697   static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" );
51698   static_assert( std::is_standard_layout<ImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
51699 
51700   struct ExternalImageFormatPropertiesNV
51701   {
51702 
51703 
51704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51705     VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT
51706     : imageFormatProperties( imageFormatProperties_ ), externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ )
51707     {}
51708 
51709     VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51710 
ExternalImageFormatPropertiesNVVULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51711     ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51712     {
51713       *this = rhs;
51714     }
51715 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51716 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51717     ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51718     {
51719       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const *>( &rhs );
51720       return *this;
51721     }
51722 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51723     ExternalImageFormatPropertiesNV & operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
51724     {
51725       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalImageFormatPropertiesNV ) );
51726       return *this;
51727     }
51728 
51729 
operator VkExternalImageFormatPropertiesNV const&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51730     operator VkExternalImageFormatPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
51731     {
51732       return *reinterpret_cast<const VkExternalImageFormatPropertiesNV*>( this );
51733     }
51734 
operator VkExternalImageFormatPropertiesNV&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51735     operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
51736     {
51737       return *reinterpret_cast<VkExternalImageFormatPropertiesNV*>( this );
51738     }
51739 
51740 
51741 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51742     auto operator<=>( ExternalImageFormatPropertiesNV const& ) const = default;
51743 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51744     bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51745     {
51746       return ( imageFormatProperties == rhs.imageFormatProperties )
51747           && ( externalMemoryFeatures == rhs.externalMemoryFeatures )
51748           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51749           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
51750     }
51751 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV51752     bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
51753     {
51754       return !operator==( rhs );
51755     }
51756 #endif
51757 
51758 
51759 
51760   public:
51761     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
51762     VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {};
51763     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {};
51764     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {};
51765 
51766   };
51767   static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" );
51768   static_assert( std::is_standard_layout<ExternalImageFormatPropertiesNV>::value, "struct wrapper is not a standard layout!" );
51769 
51770   struct PhysicalDeviceExternalSemaphoreInfo
51771   {
51772     static const bool allowDuplicate = false;
51773     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
51774 
51775 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51776     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
51777     : handleType( handleType_ )
51778     {}
51779 
51780     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51781 
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51782     PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51783     {
51784       *this = rhs;
51785     }
51786 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51787 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51788     PhysicalDeviceExternalSemaphoreInfo & operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51789     {
51790       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const *>( &rhs );
51791       return *this;
51792     }
51793 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51794     PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
51795     {
51796       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalSemaphoreInfo ) );
51797       return *this;
51798     }
51799 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51800     PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
51801     {
51802       pNext = pNext_;
51803       return *this;
51804     }
51805 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51806     PhysicalDeviceExternalSemaphoreInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
51807     {
51808       handleType = handleType_;
51809       return *this;
51810     }
51811 
51812 
operator VkPhysicalDeviceExternalSemaphoreInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51813     operator VkPhysicalDeviceExternalSemaphoreInfo const&() const VULKAN_HPP_NOEXCEPT
51814     {
51815       return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( this );
51816     }
51817 
operator VkPhysicalDeviceExternalSemaphoreInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51818     operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
51819     {
51820       return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>( this );
51821     }
51822 
51823 
51824 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51825     auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const& ) const = default;
51826 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51827     bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51828     {
51829       return ( sType == rhs.sType )
51830           && ( pNext == rhs.pNext )
51831           && ( handleType == rhs.handleType );
51832     }
51833 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo51834     bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
51835     {
51836       return !operator==( rhs );
51837     }
51838 #endif
51839 
51840 
51841 
51842   public:
51843     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
51844     const void* pNext = {};
51845     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
51846 
51847   };
51848   static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" );
51849   static_assert( std::is_standard_layout<PhysicalDeviceExternalSemaphoreInfo>::value, "struct wrapper is not a standard layout!" );
51850 
51851   template <>
51852   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalSemaphoreInfo>
51853   {
51854     using Type = PhysicalDeviceExternalSemaphoreInfo;
51855   };
51856   using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
51857 
51858   struct ExternalSemaphoreProperties
51859   {
51860     static const bool allowDuplicate = false;
51861     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties;
51862 
51863 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51864     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {}) VULKAN_HPP_NOEXCEPT
51865     : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalSemaphoreFeatures( externalSemaphoreFeatures_ )
51866     {}
51867 
51868     VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51869 
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51870     ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51871     {
51872       *this = rhs;
51873     }
51874 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51875 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51876     ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51877     {
51878       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const *>( &rhs );
51879       return *this;
51880     }
51881 
operator =VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51882     ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
51883     {
51884       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalSemaphoreProperties ) );
51885       return *this;
51886     }
51887 
51888 
operator VkExternalSemaphoreProperties const&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51889     operator VkExternalSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
51890     {
51891       return *reinterpret_cast<const VkExternalSemaphoreProperties*>( this );
51892     }
51893 
operator VkExternalSemaphoreProperties&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51894     operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
51895     {
51896       return *reinterpret_cast<VkExternalSemaphoreProperties*>( this );
51897     }
51898 
51899 
51900 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51901     auto operator<=>( ExternalSemaphoreProperties const& ) const = default;
51902 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51903     bool operator==( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51904     {
51905       return ( sType == rhs.sType )
51906           && ( pNext == rhs.pNext )
51907           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
51908           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
51909           && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
51910     }
51911 
operator !=VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties51912     bool operator!=( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
51913     {
51914       return !operator==( rhs );
51915     }
51916 #endif
51917 
51918 
51919 
51920   public:
51921     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties;
51922     void* pNext = {};
51923     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {};
51924     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {};
51925     VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {};
51926 
51927   };
51928   static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" );
51929   static_assert( std::is_standard_layout<ExternalSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
51930 
51931   template <>
51932   struct CppType<StructureType, StructureType::eExternalSemaphoreProperties>
51933   {
51934     using Type = ExternalSemaphoreProperties;
51935   };
51936   using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
51937 
51938   struct PhysicalDeviceFeatures2
51939   {
51940     static const bool allowDuplicate = false;
51941     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2;
51942 
51943 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251944     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}) VULKAN_HPP_NOEXCEPT
51945     : features( features_ )
51946     {}
51947 
51948     VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
51949 
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251950     PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
51951     {
51952       *this = rhs;
51953     }
51954 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
51955 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251956     PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
51957     {
51958       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const *>( &rhs );
51959       return *this;
51960     }
51961 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251962     PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
51963     {
51964       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFeatures2 ) );
51965       return *this;
51966     }
51967 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251968     PhysicalDeviceFeatures2 & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
51969     {
51970       pNext = pNext_;
51971       return *this;
51972     }
51973 
setFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251974     PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT
51975     {
51976       features = features_;
51977       return *this;
51978     }
51979 
51980 
operator VkPhysicalDeviceFeatures2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251981     operator VkPhysicalDeviceFeatures2 const&() const VULKAN_HPP_NOEXCEPT
51982     {
51983       return *reinterpret_cast<const VkPhysicalDeviceFeatures2*>( this );
51984     }
51985 
operator VkPhysicalDeviceFeatures2&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251986     operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
51987     {
51988       return *reinterpret_cast<VkPhysicalDeviceFeatures2*>( this );
51989     }
51990 
51991 
51992 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
51993     auto operator<=>( PhysicalDeviceFeatures2 const& ) const = default;
51994 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures251995     bool operator==( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
51996     {
51997       return ( sType == rhs.sType )
51998           && ( pNext == rhs.pNext )
51999           && ( features == rhs.features );
52000     }
52001 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures252002     bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52003     {
52004       return !operator==( rhs );
52005     }
52006 #endif
52007 
52008 
52009 
52010   public:
52011     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2;
52012     void* pNext = {};
52013     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {};
52014 
52015   };
52016   static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" );
52017   static_assert( std::is_standard_layout<PhysicalDeviceFeatures2>::value, "struct wrapper is not a standard layout!" );
52018 
52019   template <>
52020   struct CppType<StructureType, StructureType::ePhysicalDeviceFeatures2>
52021   {
52022     using Type = PhysicalDeviceFeatures2;
52023   };
52024   using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
52025 
52026   struct FormatProperties
52027   {
52028 
52029 
52030 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties52031     VULKAN_HPP_CONSTEXPR FormatProperties(VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {}) VULKAN_HPP_NOEXCEPT
52032     : linearTilingFeatures( linearTilingFeatures_ ), optimalTilingFeatures( optimalTilingFeatures_ ), bufferFeatures( bufferFeatures_ )
52033     {}
52034 
52035     VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52036 
FormatPropertiesVULKAN_HPP_NAMESPACE::FormatProperties52037     FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52038     {
52039       *this = rhs;
52040     }
52041 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52042 
operator =VULKAN_HPP_NAMESPACE::FormatProperties52043     FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52044     {
52045       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties const *>( &rhs );
52046       return *this;
52047     }
52048 
operator =VULKAN_HPP_NAMESPACE::FormatProperties52049     FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52050     {
52051       memcpy( static_cast<void *>( this ), &rhs, sizeof( FormatProperties ) );
52052       return *this;
52053     }
52054 
52055 
operator VkFormatProperties const&VULKAN_HPP_NAMESPACE::FormatProperties52056     operator VkFormatProperties const&() const VULKAN_HPP_NOEXCEPT
52057     {
52058       return *reinterpret_cast<const VkFormatProperties*>( this );
52059     }
52060 
operator VkFormatProperties&VULKAN_HPP_NAMESPACE::FormatProperties52061     operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT
52062     {
52063       return *reinterpret_cast<VkFormatProperties*>( this );
52064     }
52065 
52066 
52067 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52068     auto operator<=>( FormatProperties const& ) const = default;
52069 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties52070     bool operator==( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52071     {
52072       return ( linearTilingFeatures == rhs.linearTilingFeatures )
52073           && ( optimalTilingFeatures == rhs.optimalTilingFeatures )
52074           && ( bufferFeatures == rhs.bufferFeatures );
52075     }
52076 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties52077     bool operator!=( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52078     {
52079       return !operator==( rhs );
52080     }
52081 #endif
52082 
52083 
52084 
52085   public:
52086     VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {};
52087     VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {};
52088     VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {};
52089 
52090   };
52091   static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" );
52092   static_assert( std::is_standard_layout<FormatProperties>::value, "struct wrapper is not a standard layout!" );
52093 
52094   struct FormatProperties2
52095   {
52096     static const bool allowDuplicate = false;
52097     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2;
52098 
52099 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties252100     VULKAN_HPP_CONSTEXPR FormatProperties2(VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}) VULKAN_HPP_NOEXCEPT
52101     : formatProperties( formatProperties_ )
52102     {}
52103 
52104     VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52105 
FormatProperties2VULKAN_HPP_NAMESPACE::FormatProperties252106     FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52107     {
52108       *this = rhs;
52109     }
52110 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52111 
operator =VULKAN_HPP_NAMESPACE::FormatProperties252112     FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52113     {
52114       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties2 const *>( &rhs );
52115       return *this;
52116     }
52117 
operator =VULKAN_HPP_NAMESPACE::FormatProperties252118     FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52119     {
52120       memcpy( static_cast<void *>( this ), &rhs, sizeof( FormatProperties2 ) );
52121       return *this;
52122     }
52123 
52124 
operator VkFormatProperties2 const&VULKAN_HPP_NAMESPACE::FormatProperties252125     operator VkFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
52126     {
52127       return *reinterpret_cast<const VkFormatProperties2*>( this );
52128     }
52129 
operator VkFormatProperties2&VULKAN_HPP_NAMESPACE::FormatProperties252130     operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT
52131     {
52132       return *reinterpret_cast<VkFormatProperties2*>( this );
52133     }
52134 
52135 
52136 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52137     auto operator<=>( FormatProperties2 const& ) const = default;
52138 #else
operator ==VULKAN_HPP_NAMESPACE::FormatProperties252139     bool operator==( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52140     {
52141       return ( sType == rhs.sType )
52142           && ( pNext == rhs.pNext )
52143           && ( formatProperties == rhs.formatProperties );
52144     }
52145 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties252146     bool operator!=( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52147     {
52148       return !operator==( rhs );
52149     }
52150 #endif
52151 
52152 
52153 
52154   public:
52155     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2;
52156     void* pNext = {};
52157     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {};
52158 
52159   };
52160   static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" );
52161   static_assert( std::is_standard_layout<FormatProperties2>::value, "struct wrapper is not a standard layout!" );
52162 
52163   template <>
52164   struct CppType<StructureType, StructureType::eFormatProperties2>
52165   {
52166     using Type = FormatProperties2;
52167   };
52168   using FormatProperties2KHR = FormatProperties2;
52169 
52170   struct PhysicalDeviceFragmentShadingRateKHR
52171   {
52172     static const bool allowDuplicate = false;
52173     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
52174 
52175 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52176     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}) VULKAN_HPP_NOEXCEPT
52177     : sampleCounts( sampleCounts_ ), fragmentSize( fragmentSize_ )
52178     {}
52179 
52180     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52181 
PhysicalDeviceFragmentShadingRateKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52182     PhysicalDeviceFragmentShadingRateKHR( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52183     {
52184       *this = rhs;
52185     }
52186 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52187 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52188     PhysicalDeviceFragmentShadingRateKHR & operator=( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52189     {
52190       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR const *>( &rhs );
52191       return *this;
52192     }
52193 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52194     PhysicalDeviceFragmentShadingRateKHR & operator=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
52195     {
52196       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateKHR ) );
52197       return *this;
52198     }
52199 
52200 
operator VkPhysicalDeviceFragmentShadingRateKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52201     operator VkPhysicalDeviceFragmentShadingRateKHR const&() const VULKAN_HPP_NOEXCEPT
52202     {
52203       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateKHR*>( this );
52204     }
52205 
operator VkPhysicalDeviceFragmentShadingRateKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52206     operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT
52207     {
52208       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR*>( this );
52209     }
52210 
52211 
52212 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52213     auto operator<=>( PhysicalDeviceFragmentShadingRateKHR const& ) const = default;
52214 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52215     bool operator==( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
52216     {
52217       return ( sType == rhs.sType )
52218           && ( pNext == rhs.pNext )
52219           && ( sampleCounts == rhs.sampleCounts )
52220           && ( fragmentSize == rhs.fragmentSize );
52221     }
52222 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR52223     bool operator!=( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
52224     {
52225       return !operator==( rhs );
52226     }
52227 #endif
52228 
52229 
52230 
52231   public:
52232     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
52233     void* pNext = {};
52234     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
52235     VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
52236 
52237   };
52238   static_assert( sizeof( PhysicalDeviceFragmentShadingRateKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateKHR ), "struct and wrapper have different size!" );
52239   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateKHR>::value, "struct wrapper is not a standard layout!" );
52240 
52241   template <>
52242   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateKHR>
52243   {
52244     using Type = PhysicalDeviceFragmentShadingRateKHR;
52245   };
52246 
52247   struct PhysicalDeviceImageFormatInfo2
52248   {
52249     static const bool allowDuplicate = false;
52250     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2;
52251 
52252 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252253     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
52254     : format( format_ ), type( type_ ), tiling( tiling_ ), usage( usage_ ), flags( flags_ )
52255     {}
52256 
52257     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52258 
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252259     PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
52260     {
52261       *this = rhs;
52262     }
52263 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52264 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252265     PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
52266     {
52267       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const *>( &rhs );
52268       return *this;
52269     }
52270 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252271     PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
52272     {
52273       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageFormatInfo2 ) );
52274       return *this;
52275     }
52276 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252277     PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
52278     {
52279       pNext = pNext_;
52280       return *this;
52281     }
52282 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252283     PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
52284     {
52285       format = format_;
52286       return *this;
52287     }
52288 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252289     PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
52290     {
52291       type = type_;
52292       return *this;
52293     }
52294 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252295     PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
52296     {
52297       tiling = tiling_;
52298       return *this;
52299     }
52300 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252301     PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
52302     {
52303       usage = usage_;
52304       return *this;
52305     }
52306 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252307     PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
52308     {
52309       flags = flags_;
52310       return *this;
52311     }
52312 
52313 
operator VkPhysicalDeviceImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252314     operator VkPhysicalDeviceImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
52315     {
52316       return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( this );
52317     }
52318 
operator VkPhysicalDeviceImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252319     operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
52320     {
52321       return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>( this );
52322     }
52323 
52324 
52325 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52326     auto operator<=>( PhysicalDeviceImageFormatInfo2 const& ) const = default;
52327 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252328     bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52329     {
52330       return ( sType == rhs.sType )
52331           && ( pNext == rhs.pNext )
52332           && ( format == rhs.format )
52333           && ( type == rhs.type )
52334           && ( tiling == rhs.tiling )
52335           && ( usage == rhs.usage )
52336           && ( flags == rhs.flags );
52337     }
52338 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo252339     bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52340     {
52341       return !operator==( rhs );
52342     }
52343 #endif
52344 
52345 
52346 
52347   public:
52348     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
52349     const void* pNext = {};
52350     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
52351     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
52352     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
52353     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
52354     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
52355 
52356   };
52357   static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" );
52358   static_assert( std::is_standard_layout<PhysicalDeviceImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
52359 
52360   template <>
52361   struct CppType<StructureType, StructureType::ePhysicalDeviceImageFormatInfo2>
52362   {
52363     using Type = PhysicalDeviceImageFormatInfo2;
52364   };
52365   using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
52366 
52367   struct ImageFormatProperties2
52368   {
52369     static const bool allowDuplicate = false;
52370     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2;
52371 
52372 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties252373     VULKAN_HPP_CONSTEXPR ImageFormatProperties2(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}) VULKAN_HPP_NOEXCEPT
52374     : imageFormatProperties( imageFormatProperties_ )
52375     {}
52376 
52377     VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52378 
ImageFormatProperties2VULKAN_HPP_NAMESPACE::ImageFormatProperties252379     ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52380     {
52381       *this = rhs;
52382     }
52383 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52384 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties252385     ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52386     {
52387       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const *>( &rhs );
52388       return *this;
52389     }
52390 
operator =VULKAN_HPP_NAMESPACE::ImageFormatProperties252391     ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52392     {
52393       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatProperties2 ) );
52394       return *this;
52395     }
52396 
52397 
operator VkImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::ImageFormatProperties252398     operator VkImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
52399     {
52400       return *reinterpret_cast<const VkImageFormatProperties2*>( this );
52401     }
52402 
operator VkImageFormatProperties2&VULKAN_HPP_NAMESPACE::ImageFormatProperties252403     operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
52404     {
52405       return *reinterpret_cast<VkImageFormatProperties2*>( this );
52406     }
52407 
52408 
52409 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52410     auto operator<=>( ImageFormatProperties2 const& ) const = default;
52411 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties252412     bool operator==( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52413     {
52414       return ( sType == rhs.sType )
52415           && ( pNext == rhs.pNext )
52416           && ( imageFormatProperties == rhs.imageFormatProperties );
52417     }
52418 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties252419     bool operator!=( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52420     {
52421       return !operator==( rhs );
52422     }
52423 #endif
52424 
52425 
52426 
52427   public:
52428     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2;
52429     void* pNext = {};
52430     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
52431 
52432   };
52433   static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" );
52434   static_assert( std::is_standard_layout<ImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
52435 
52436   template <>
52437   struct CppType<StructureType, StructureType::eImageFormatProperties2>
52438   {
52439     using Type = ImageFormatProperties2;
52440   };
52441   using ImageFormatProperties2KHR = ImageFormatProperties2;
52442 
52443   struct MemoryType
52444   {
52445 
52446 
52447 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType52448     VULKAN_HPP_CONSTEXPR MemoryType(VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT
52449     : propertyFlags( propertyFlags_ ), heapIndex( heapIndex_ )
52450     {}
52451 
52452     VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52453 
MemoryTypeVULKAN_HPP_NAMESPACE::MemoryType52454     MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
52455     {
52456       *this = rhs;
52457     }
52458 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52459 
operator =VULKAN_HPP_NAMESPACE::MemoryType52460     MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
52461     {
52462       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryType const *>( &rhs );
52463       return *this;
52464     }
52465 
operator =VULKAN_HPP_NAMESPACE::MemoryType52466     MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
52467     {
52468       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryType ) );
52469       return *this;
52470     }
52471 
52472 
operator VkMemoryType const&VULKAN_HPP_NAMESPACE::MemoryType52473     operator VkMemoryType const&() const VULKAN_HPP_NOEXCEPT
52474     {
52475       return *reinterpret_cast<const VkMemoryType*>( this );
52476     }
52477 
operator VkMemoryType&VULKAN_HPP_NAMESPACE::MemoryType52478     operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
52479     {
52480       return *reinterpret_cast<VkMemoryType*>( this );
52481     }
52482 
52483 
52484 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52485     auto operator<=>( MemoryType const& ) const = default;
52486 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryType52487     bool operator==( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
52488     {
52489       return ( propertyFlags == rhs.propertyFlags )
52490           && ( heapIndex == rhs.heapIndex );
52491     }
52492 
operator !=VULKAN_HPP_NAMESPACE::MemoryType52493     bool operator!=( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT
52494     {
52495       return !operator==( rhs );
52496     }
52497 #endif
52498 
52499 
52500 
52501   public:
52502     VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {};
52503     uint32_t heapIndex = {};
52504 
52505   };
52506   static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" );
52507   static_assert( std::is_standard_layout<MemoryType>::value, "struct wrapper is not a standard layout!" );
52508 
52509   struct MemoryHeap
52510   {
52511 
52512 
52513 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap52514     VULKAN_HPP_CONSTEXPR MemoryHeap(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {}) VULKAN_HPP_NOEXCEPT
52515     : size( size_ ), flags( flags_ )
52516     {}
52517 
52518     VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52519 
MemoryHeapVULKAN_HPP_NAMESPACE::MemoryHeap52520     MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
52521     {
52522       *this = rhs;
52523     }
52524 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52525 
operator =VULKAN_HPP_NAMESPACE::MemoryHeap52526     MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
52527     {
52528       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHeap const *>( &rhs );
52529       return *this;
52530     }
52531 
operator =VULKAN_HPP_NAMESPACE::MemoryHeap52532     MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
52533     {
52534       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryHeap ) );
52535       return *this;
52536     }
52537 
52538 
operator VkMemoryHeap const&VULKAN_HPP_NAMESPACE::MemoryHeap52539     operator VkMemoryHeap const&() const VULKAN_HPP_NOEXCEPT
52540     {
52541       return *reinterpret_cast<const VkMemoryHeap*>( this );
52542     }
52543 
operator VkMemoryHeap&VULKAN_HPP_NAMESPACE::MemoryHeap52544     operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
52545     {
52546       return *reinterpret_cast<VkMemoryHeap*>( this );
52547     }
52548 
52549 
52550 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52551     auto operator<=>( MemoryHeap const& ) const = default;
52552 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryHeap52553     bool operator==( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
52554     {
52555       return ( size == rhs.size )
52556           && ( flags == rhs.flags );
52557     }
52558 
operator !=VULKAN_HPP_NAMESPACE::MemoryHeap52559     bool operator!=( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT
52560     {
52561       return !operator==( rhs );
52562     }
52563 #endif
52564 
52565 
52566 
52567   public:
52568     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
52569     VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {};
52570 
52571   };
52572   static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" );
52573   static_assert( std::is_standard_layout<MemoryHeap>::value, "struct wrapper is not a standard layout!" );
52574 
52575   struct PhysicalDeviceMemoryProperties
52576   {
52577 
52578 
52579 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52580     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties(uint32_t memoryTypeCount_ = {}, std::array<VULKAN_HPP_NAMESPACE::MemoryType,VK_MAX_MEMORY_TYPES> const& memoryTypes_ = {}, uint32_t memoryHeapCount_ = {}, std::array<VULKAN_HPP_NAMESPACE::MemoryHeap,VK_MAX_MEMORY_HEAPS> const& memoryHeaps_ = {}) VULKAN_HPP_NOEXCEPT
52581     : memoryTypeCount( memoryTypeCount_ ), memoryTypes( memoryTypes_ ), memoryHeapCount( memoryHeapCount_ ), memoryHeaps( memoryHeaps_ )
52582     {}
52583 
52584     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52585 
PhysicalDeviceMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52586     PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52587     {
52588       *this = rhs;
52589     }
52590 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52591 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52592     PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52593     {
52594       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const *>( &rhs );
52595       return *this;
52596     }
52597 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52598     PhysicalDeviceMemoryProperties & operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
52599     {
52600       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryProperties ) );
52601       return *this;
52602     }
52603 
52604 
operator VkPhysicalDeviceMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52605     operator VkPhysicalDeviceMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
52606     {
52607       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties*>( this );
52608     }
52609 
operator VkPhysicalDeviceMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52610     operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
52611     {
52612       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( this );
52613     }
52614 
52615 
52616 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52617     auto operator<=>( PhysicalDeviceMemoryProperties const& ) const = default;
52618 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52619     bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52620     {
52621       return ( memoryTypeCount == rhs.memoryTypeCount )
52622           && ( memoryTypes == rhs.memoryTypes )
52623           && ( memoryHeapCount == rhs.memoryHeapCount )
52624           && ( memoryHeaps == rhs.memoryHeaps );
52625     }
52626 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties52627     bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
52628     {
52629       return !operator==( rhs );
52630     }
52631 #endif
52632 
52633 
52634 
52635   public:
52636     uint32_t memoryTypeCount = {};
52637     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> memoryTypes = {};
52638     uint32_t memoryHeapCount = {};
52639     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> memoryHeaps = {};
52640 
52641   };
52642   static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" );
52643   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties>::value, "struct wrapper is not a standard layout!" );
52644 
52645   struct PhysicalDeviceMemoryProperties2
52646   {
52647     static const bool allowDuplicate = false;
52648     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2;
52649 
52650 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252651     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
52652     : memoryProperties( memoryProperties_ )
52653     {}
52654 
52655     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52656 
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252657     PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52658     {
52659       *this = rhs;
52660     }
52661 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52662 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252663     PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52664     {
52665       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const *>( &rhs );
52666       return *this;
52667     }
52668 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252669     PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
52670     {
52671       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryProperties2 ) );
52672       return *this;
52673     }
52674 
52675 
operator VkPhysicalDeviceMemoryProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252676     operator VkPhysicalDeviceMemoryProperties2 const&() const VULKAN_HPP_NOEXCEPT
52677     {
52678       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2*>( this );
52679     }
52680 
operator VkPhysicalDeviceMemoryProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252681     operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
52682     {
52683       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( this );
52684     }
52685 
52686 
52687 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52688     auto operator<=>( PhysicalDeviceMemoryProperties2 const& ) const = default;
52689 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252690     bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52691     {
52692       return ( sType == rhs.sType )
52693           && ( pNext == rhs.pNext )
52694           && ( memoryProperties == rhs.memoryProperties );
52695     }
52696 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties252697     bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
52698     {
52699       return !operator==( rhs );
52700     }
52701 #endif
52702 
52703 
52704 
52705   public:
52706     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
52707     void* pNext = {};
52708     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {};
52709 
52710   };
52711   static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" );
52712   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties2>::value, "struct wrapper is not a standard layout!" );
52713 
52714   template <>
52715   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryProperties2>
52716   {
52717     using Type = PhysicalDeviceMemoryProperties2;
52718   };
52719   using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
52720 
52721   struct MultisamplePropertiesEXT
52722   {
52723     static const bool allowDuplicate = false;
52724     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT;
52725 
52726 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52727     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}) VULKAN_HPP_NOEXCEPT
52728     : maxSampleLocationGridSize( maxSampleLocationGridSize_ )
52729     {}
52730 
52731     VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52732 
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52733     MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52734     {
52735       *this = rhs;
52736     }
52737 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52738 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52739     MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52740     {
52741       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const *>( &rhs );
52742       return *this;
52743     }
52744 
operator =VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52745     MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
52746     {
52747       memcpy( static_cast<void *>( this ), &rhs, sizeof( MultisamplePropertiesEXT ) );
52748       return *this;
52749     }
52750 
52751 
operator VkMultisamplePropertiesEXT const&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52752     operator VkMultisamplePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
52753     {
52754       return *reinterpret_cast<const VkMultisamplePropertiesEXT*>( this );
52755     }
52756 
operator VkMultisamplePropertiesEXT&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52757     operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
52758     {
52759       return *reinterpret_cast<VkMultisamplePropertiesEXT*>( this );
52760     }
52761 
52762 
52763 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52764     auto operator<=>( MultisamplePropertiesEXT const& ) const = default;
52765 #else
operator ==VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52766     bool operator==( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52767     {
52768       return ( sType == rhs.sType )
52769           && ( pNext == rhs.pNext )
52770           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
52771     }
52772 
operator !=VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT52773     bool operator!=( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
52774     {
52775       return !operator==( rhs );
52776     }
52777 #endif
52778 
52779 
52780 
52781   public:
52782     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT;
52783     void* pNext = {};
52784     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
52785 
52786   };
52787   static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" );
52788   static_assert( std::is_standard_layout<MultisamplePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
52789 
52790   template <>
52791   struct CppType<StructureType, StructureType::eMultisamplePropertiesEXT>
52792   {
52793     using Type = MultisamplePropertiesEXT;
52794   };
52795 
52796   struct PhysicalDeviceLimits
52797   {
52798 
52799 
52800 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52801     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits(uint32_t maxImageDimension1D_ = {}, uint32_t maxImageDimension2D_ = {}, uint32_t maxImageDimension3D_ = {}, uint32_t maxImageDimensionCube_ = {}, uint32_t maxImageArrayLayers_ = {}, uint32_t maxTexelBufferElements_ = {}, uint32_t maxUniformBufferRange_ = {}, uint32_t maxStorageBufferRange_ = {}, uint32_t maxPushConstantsSize_ = {}, uint32_t maxMemoryAllocationCount_ = {}, uint32_t maxSamplerAllocationCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize_ = {}, uint32_t maxBoundDescriptorSets_ = {}, uint32_t maxPerStageDescriptorSamplers_ = {}, uint32_t maxPerStageDescriptorUniformBuffers_ = {}, uint32_t maxPerStageDescriptorStorageBuffers_ = {}, uint32_t maxPerStageDescriptorSampledImages_ = {}, uint32_t maxPerStageDescriptorStorageImages_ = {}, uint32_t maxPerStageDescriptorInputAttachments_ = {}, uint32_t maxPerStageResources_ = {}, uint32_t maxDescriptorSetSamplers_ = {}, uint32_t maxDescriptorSetUniformBuffers_ = {}, uint32_t maxDescriptorSetUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetStorageBuffers_ = {}, uint32_t maxDescriptorSetStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetSampledImages_ = {}, uint32_t maxDescriptorSetStorageImages_ = {}, uint32_t maxDescriptorSetInputAttachments_ = {}, uint32_t maxVertexInputAttributes_ = {}, uint32_t maxVertexInputBindings_ = {}, uint32_t maxVertexInputAttributeOffset_ = {}, uint32_t maxVertexInputBindingStride_ = {}, uint32_t maxVertexOutputComponents_ = {}, uint32_t maxTessellationGenerationLevel_ = {}, uint32_t maxTessellationPatchSize_ = {}, uint32_t maxTessellationControlPerVertexInputComponents_ = {}, uint32_t maxTessellationControlPerVertexOutputComponents_ = {}, uint32_t maxTessellationControlPerPatchOutputComponents_ = {}, uint32_t maxTessellationControlTotalOutputComponents_ = {}, uint32_t maxTessellationEvaluationInputComponents_ = {}, uint32_t maxTessellationEvaluationOutputComponents_ = {}, uint32_t maxGeometryShaderInvocations_ = {}, uint32_t maxGeometryInputComponents_ = {}, uint32_t maxGeometryOutputComponents_ = {}, uint32_t maxGeometryOutputVertices_ = {}, uint32_t maxGeometryTotalOutputComponents_ = {}, uint32_t maxFragmentInputComponents_ = {}, uint32_t maxFragmentOutputAttachments_ = {}, uint32_t maxFragmentDualSrcAttachments_ = {}, uint32_t maxFragmentCombinedOutputResources_ = {}, uint32_t maxComputeSharedMemorySize_ = {}, std::array<uint32_t,3> const& maxComputeWorkGroupCount_ = {}, uint32_t maxComputeWorkGroupInvocations_ = {}, std::array<uint32_t,3> const& maxComputeWorkGroupSize_ = {}, uint32_t subPixelPrecisionBits_ = {}, uint32_t subTexelPrecisionBits_ = {}, uint32_t mipmapPrecisionBits_ = {}, uint32_t maxDrawIndexedIndexValue_ = {}, uint32_t maxDrawIndirectCount_ = {}, float maxSamplerLodBias_ = {}, float maxSamplerAnisotropy_ = {}, uint32_t maxViewports_ = {}, std::array<uint32_t,2> const& maxViewportDimensions_ = {}, std::array<float,2> const& viewportBoundsRange_ = {}, uint32_t viewportSubPixelBits_ = {}, size_t minMemoryMapAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment_ = {}, int32_t minTexelOffset_ = {}, uint32_t maxTexelOffset_ = {}, int32_t minTexelGatherOffset_ = {}, uint32_t maxTexelGatherOffset_ = {}, float minInterpolationOffset_ = {}, float maxInterpolationOffset_ = {}, uint32_t subPixelInterpolationOffsetBits_ = {}, uint32_t maxFramebufferWidth_ = {}, uint32_t maxFramebufferHeight_ = {}, uint32_t maxFramebufferLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts_ = {}, uint32_t maxColorAttachments_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts_ = {}, uint32_t maxSampleMaskWords_ = {}, VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics_ = {}, float timestampPeriod_ = {}, uint32_t maxClipDistances_ = {}, uint32_t maxCullDistances_ = {}, uint32_t maxCombinedClipAndCullDistances_ = {}, uint32_t discreteQueuePriorities_ = {}, std::array<float,2> const& pointSizeRange_ = {}, std::array<float,2> const& lineWidthRange_ = {}, float pointSizeGranularity_ = {}, float lineWidthGranularity_ = {}, VULKAN_HPP_NAMESPACE::Bool32 strictLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {}) VULKAN_HPP_NOEXCEPT
52802     : maxImageDimension1D( maxImageDimension1D_ ), maxImageDimension2D( maxImageDimension2D_ ), maxImageDimension3D( maxImageDimension3D_ ), maxImageDimensionCube( maxImageDimensionCube_ ), maxImageArrayLayers( maxImageArrayLayers_ ), maxTexelBufferElements( maxTexelBufferElements_ ), maxUniformBufferRange( maxUniformBufferRange_ ), maxStorageBufferRange( maxStorageBufferRange_ ), maxPushConstantsSize( maxPushConstantsSize_ ), maxMemoryAllocationCount( maxMemoryAllocationCount_ ), maxSamplerAllocationCount( maxSamplerAllocationCount_ ), bufferImageGranularity( bufferImageGranularity_ ), sparseAddressSpaceSize( sparseAddressSpaceSize_ ), maxBoundDescriptorSets( maxBoundDescriptorSets_ ), maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ ), maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ ), maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ ), maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ ), maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ ), maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ ), maxPerStageResources( maxPerStageResources_ ), maxDescriptorSetSamplers( maxDescriptorSetSamplers_ ), maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ ), maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ ), maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ ), maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ ), maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ ), maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ ), maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ ), maxVertexInputAttributes( maxVertexInputAttributes_ ), maxVertexInputBindings( maxVertexInputBindings_ ), maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ ), maxVertexInputBindingStride( maxVertexInputBindingStride_ ), maxVertexOutputComponents( maxVertexOutputComponents_ ), maxTessellationGenerationLevel( maxTessellationGenerationLevel_ ), maxTessellationPatchSize( maxTessellationPatchSize_ ), maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ ), maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ ), maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ ), maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ ), maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ ), maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ ), maxGeometryShaderInvocations( maxGeometryShaderInvocations_ ), maxGeometryInputComponents( maxGeometryInputComponents_ ), maxGeometryOutputComponents( maxGeometryOutputComponents_ ), maxGeometryOutputVertices( maxGeometryOutputVertices_ ), maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ ), maxFragmentInputComponents( maxFragmentInputComponents_ ), maxFragmentOutputAttachments( maxFragmentOutputAttachments_ ), maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ ), maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ ), maxComputeSharedMemorySize( maxComputeSharedMemorySize_ ), maxComputeWorkGroupCount( maxComputeWorkGroupCount_ ), maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ ), maxComputeWorkGroupSize( maxComputeWorkGroupSize_ ), subPixelPrecisionBits( subPixelPrecisionBits_ ), subTexelPrecisionBits( subTexelPrecisionBits_ ), mipmapPrecisionBits( mipmapPrecisionBits_ ), maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ ), maxDrawIndirectCount( maxDrawIndirectCount_ ), maxSamplerLodBias( maxSamplerLodBias_ ), maxSamplerAnisotropy( maxSamplerAnisotropy_ ), maxViewports( maxViewports_ ), maxViewportDimensions( maxViewportDimensions_ ), viewportBoundsRange( viewportBoundsRange_ ), viewportSubPixelBits( viewportSubPixelBits_ ), minMemoryMapAlignment( minMemoryMapAlignment_ ), minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ ), minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ ), minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ ), minTexelOffset( minTexelOffset_ ), maxTexelOffset( maxTexelOffset_ ), minTexelGatherOffset( minTexelGatherOffset_ ), maxTexelGatherOffset( maxTexelGatherOffset_ ), minInterpolationOffset( minInterpolationOffset_ ), maxInterpolationOffset( maxInterpolationOffset_ ), subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ ), maxFramebufferWidth( maxFramebufferWidth_ ), maxFramebufferHeight( maxFramebufferHeight_ ), maxFramebufferLayers( maxFramebufferLayers_ ), framebufferColorSampleCounts( framebufferColorSampleCounts_ ), framebufferDepthSampleCounts( framebufferDepthSampleCounts_ ), framebufferStencilSampleCounts( framebufferStencilSampleCounts_ ), framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ ), maxColorAttachments( maxColorAttachments_ ), sampledImageColorSampleCounts( sampledImageColorSampleCounts_ ), sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ ), sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ ), sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ ), storageImageSampleCounts( storageImageSampleCounts_ ), maxSampleMaskWords( maxSampleMaskWords_ ), timestampComputeAndGraphics( timestampComputeAndGraphics_ ), timestampPeriod( timestampPeriod_ ), maxClipDistances( maxClipDistances_ ), maxCullDistances( maxCullDistances_ ), maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ ), discreteQueuePriorities( discreteQueuePriorities_ ), pointSizeRange( pointSizeRange_ ), lineWidthRange( lineWidthRange_ ), pointSizeGranularity( pointSizeGranularity_ ), lineWidthGranularity( lineWidthGranularity_ ), strictLines( strictLines_ ), standardSampleLocations( standardSampleLocations_ ), optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ ), optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ ), nonCoherentAtomSize( nonCoherentAtomSize_ )
52803     {}
52804 
52805     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
52806 
PhysicalDeviceLimitsVULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52807     PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
52808     {
52809       *this = rhs;
52810     }
52811 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52812 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52813     PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
52814     {
52815       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const *>( &rhs );
52816       return *this;
52817     }
52818 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52819     PhysicalDeviceLimits & operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
52820     {
52821       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceLimits ) );
52822       return *this;
52823     }
52824 
52825 
operator VkPhysicalDeviceLimits const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52826     operator VkPhysicalDeviceLimits const&() const VULKAN_HPP_NOEXCEPT
52827     {
52828       return *reinterpret_cast<const VkPhysicalDeviceLimits*>( this );
52829     }
52830 
operator VkPhysicalDeviceLimits&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52831     operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
52832     {
52833       return *reinterpret_cast<VkPhysicalDeviceLimits*>( this );
52834     }
52835 
52836 
52837 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
52838     auto operator<=>( PhysicalDeviceLimits const& ) const = default;
52839 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52840     bool operator==( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
52841     {
52842       return ( maxImageDimension1D == rhs.maxImageDimension1D )
52843           && ( maxImageDimension2D == rhs.maxImageDimension2D )
52844           && ( maxImageDimension3D == rhs.maxImageDimension3D )
52845           && ( maxImageDimensionCube == rhs.maxImageDimensionCube )
52846           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
52847           && ( maxTexelBufferElements == rhs.maxTexelBufferElements )
52848           && ( maxUniformBufferRange == rhs.maxUniformBufferRange )
52849           && ( maxStorageBufferRange == rhs.maxStorageBufferRange )
52850           && ( maxPushConstantsSize == rhs.maxPushConstantsSize )
52851           && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount )
52852           && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount )
52853           && ( bufferImageGranularity == rhs.bufferImageGranularity )
52854           && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize )
52855           && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets )
52856           && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers )
52857           && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers )
52858           && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers )
52859           && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages )
52860           && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages )
52861           && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments )
52862           && ( maxPerStageResources == rhs.maxPerStageResources )
52863           && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers )
52864           && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers )
52865           && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic )
52866           && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers )
52867           && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic )
52868           && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages )
52869           && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages )
52870           && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments )
52871           && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes )
52872           && ( maxVertexInputBindings == rhs.maxVertexInputBindings )
52873           && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset )
52874           && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride )
52875           && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents )
52876           && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel )
52877           && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize )
52878           && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents )
52879           && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents )
52880           && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents )
52881           && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents )
52882           && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents )
52883           && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents )
52884           && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations )
52885           && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents )
52886           && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents )
52887           && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices )
52888           && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents )
52889           && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents )
52890           && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments )
52891           && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments )
52892           && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources )
52893           && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize )
52894           && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount )
52895           && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations )
52896           && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize )
52897           && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits )
52898           && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits )
52899           && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits )
52900           && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue )
52901           && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount )
52902           && ( maxSamplerLodBias == rhs.maxSamplerLodBias )
52903           && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy )
52904           && ( maxViewports == rhs.maxViewports )
52905           && ( maxViewportDimensions == rhs.maxViewportDimensions )
52906           && ( viewportBoundsRange == rhs.viewportBoundsRange )
52907           && ( viewportSubPixelBits == rhs.viewportSubPixelBits )
52908           && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment )
52909           && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment )
52910           && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment )
52911           && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment )
52912           && ( minTexelOffset == rhs.minTexelOffset )
52913           && ( maxTexelOffset == rhs.maxTexelOffset )
52914           && ( minTexelGatherOffset == rhs.minTexelGatherOffset )
52915           && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset )
52916           && ( minInterpolationOffset == rhs.minInterpolationOffset )
52917           && ( maxInterpolationOffset == rhs.maxInterpolationOffset )
52918           && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits )
52919           && ( maxFramebufferWidth == rhs.maxFramebufferWidth )
52920           && ( maxFramebufferHeight == rhs.maxFramebufferHeight )
52921           && ( maxFramebufferLayers == rhs.maxFramebufferLayers )
52922           && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts )
52923           && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts )
52924           && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts )
52925           && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts )
52926           && ( maxColorAttachments == rhs.maxColorAttachments )
52927           && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts )
52928           && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts )
52929           && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts )
52930           && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts )
52931           && ( storageImageSampleCounts == rhs.storageImageSampleCounts )
52932           && ( maxSampleMaskWords == rhs.maxSampleMaskWords )
52933           && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics )
52934           && ( timestampPeriod == rhs.timestampPeriod )
52935           && ( maxClipDistances == rhs.maxClipDistances )
52936           && ( maxCullDistances == rhs.maxCullDistances )
52937           && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances )
52938           && ( discreteQueuePriorities == rhs.discreteQueuePriorities )
52939           && ( pointSizeRange == rhs.pointSizeRange )
52940           && ( lineWidthRange == rhs.lineWidthRange )
52941           && ( pointSizeGranularity == rhs.pointSizeGranularity )
52942           && ( lineWidthGranularity == rhs.lineWidthGranularity )
52943           && ( strictLines == rhs.strictLines )
52944           && ( standardSampleLocations == rhs.standardSampleLocations )
52945           && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment )
52946           && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment )
52947           && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
52948     }
52949 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits52950     bool operator!=( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT
52951     {
52952       return !operator==( rhs );
52953     }
52954 #endif
52955 
52956 
52957 
52958   public:
52959     uint32_t maxImageDimension1D = {};
52960     uint32_t maxImageDimension2D = {};
52961     uint32_t maxImageDimension3D = {};
52962     uint32_t maxImageDimensionCube = {};
52963     uint32_t maxImageArrayLayers = {};
52964     uint32_t maxTexelBufferElements = {};
52965     uint32_t maxUniformBufferRange = {};
52966     uint32_t maxStorageBufferRange = {};
52967     uint32_t maxPushConstantsSize = {};
52968     uint32_t maxMemoryAllocationCount = {};
52969     uint32_t maxSamplerAllocationCount = {};
52970     VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {};
52971     VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {};
52972     uint32_t maxBoundDescriptorSets = {};
52973     uint32_t maxPerStageDescriptorSamplers = {};
52974     uint32_t maxPerStageDescriptorUniformBuffers = {};
52975     uint32_t maxPerStageDescriptorStorageBuffers = {};
52976     uint32_t maxPerStageDescriptorSampledImages = {};
52977     uint32_t maxPerStageDescriptorStorageImages = {};
52978     uint32_t maxPerStageDescriptorInputAttachments = {};
52979     uint32_t maxPerStageResources = {};
52980     uint32_t maxDescriptorSetSamplers = {};
52981     uint32_t maxDescriptorSetUniformBuffers = {};
52982     uint32_t maxDescriptorSetUniformBuffersDynamic = {};
52983     uint32_t maxDescriptorSetStorageBuffers = {};
52984     uint32_t maxDescriptorSetStorageBuffersDynamic = {};
52985     uint32_t maxDescriptorSetSampledImages = {};
52986     uint32_t maxDescriptorSetStorageImages = {};
52987     uint32_t maxDescriptorSetInputAttachments = {};
52988     uint32_t maxVertexInputAttributes = {};
52989     uint32_t maxVertexInputBindings = {};
52990     uint32_t maxVertexInputAttributeOffset = {};
52991     uint32_t maxVertexInputBindingStride = {};
52992     uint32_t maxVertexOutputComponents = {};
52993     uint32_t maxTessellationGenerationLevel = {};
52994     uint32_t maxTessellationPatchSize = {};
52995     uint32_t maxTessellationControlPerVertexInputComponents = {};
52996     uint32_t maxTessellationControlPerVertexOutputComponents = {};
52997     uint32_t maxTessellationControlPerPatchOutputComponents = {};
52998     uint32_t maxTessellationControlTotalOutputComponents = {};
52999     uint32_t maxTessellationEvaluationInputComponents = {};
53000     uint32_t maxTessellationEvaluationOutputComponents = {};
53001     uint32_t maxGeometryShaderInvocations = {};
53002     uint32_t maxGeometryInputComponents = {};
53003     uint32_t maxGeometryOutputComponents = {};
53004     uint32_t maxGeometryOutputVertices = {};
53005     uint32_t maxGeometryTotalOutputComponents = {};
53006     uint32_t maxFragmentInputComponents = {};
53007     uint32_t maxFragmentOutputAttachments = {};
53008     uint32_t maxFragmentDualSrcAttachments = {};
53009     uint32_t maxFragmentCombinedOutputResources = {};
53010     uint32_t maxComputeSharedMemorySize = {};
53011     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupCount = {};
53012     uint32_t maxComputeWorkGroupInvocations = {};
53013     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupSize = {};
53014     uint32_t subPixelPrecisionBits = {};
53015     uint32_t subTexelPrecisionBits = {};
53016     uint32_t mipmapPrecisionBits = {};
53017     uint32_t maxDrawIndexedIndexValue = {};
53018     uint32_t maxDrawIndirectCount = {};
53019     float maxSamplerLodBias = {};
53020     float maxSamplerAnisotropy = {};
53021     uint32_t maxViewports = {};
53022     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> maxViewportDimensions = {};
53023     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> viewportBoundsRange = {};
53024     uint32_t viewportSubPixelBits = {};
53025     size_t minMemoryMapAlignment = {};
53026     VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {};
53027     VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {};
53028     VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {};
53029     int32_t minTexelOffset = {};
53030     uint32_t maxTexelOffset = {};
53031     int32_t minTexelGatherOffset = {};
53032     uint32_t maxTexelGatherOffset = {};
53033     float minInterpolationOffset = {};
53034     float maxInterpolationOffset = {};
53035     uint32_t subPixelInterpolationOffsetBits = {};
53036     uint32_t maxFramebufferWidth = {};
53037     uint32_t maxFramebufferHeight = {};
53038     uint32_t maxFramebufferLayers = {};
53039     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {};
53040     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {};
53041     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {};
53042     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {};
53043     uint32_t maxColorAttachments = {};
53044     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {};
53045     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {};
53046     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {};
53047     VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {};
53048     VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {};
53049     uint32_t maxSampleMaskWords = {};
53050     VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {};
53051     float timestampPeriod = {};
53052     uint32_t maxClipDistances = {};
53053     uint32_t maxCullDistances = {};
53054     uint32_t maxCombinedClipAndCullDistances = {};
53055     uint32_t discreteQueuePriorities = {};
53056     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> pointSizeRange = {};
53057     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> lineWidthRange = {};
53058     float pointSizeGranularity = {};
53059     float lineWidthGranularity = {};
53060     VULKAN_HPP_NAMESPACE::Bool32 strictLines = {};
53061     VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {};
53062     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {};
53063     VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {};
53064     VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {};
53065 
53066   };
53067   static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" );
53068   static_assert( std::is_standard_layout<PhysicalDeviceLimits>::value, "struct wrapper is not a standard layout!" );
53069 
53070   struct PhysicalDeviceSparseProperties
53071   {
53072 
53073 
53074 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53075     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties(VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {}) VULKAN_HPP_NOEXCEPT
53076     : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ ), residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ ), residencyStandard3DBlockShape( residencyStandard3DBlockShape_ ), residencyAlignedMipSize( residencyAlignedMipSize_ ), residencyNonResidentStrict( residencyNonResidentStrict_ )
53077     {}
53078 
53079     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53080 
PhysicalDeviceSparsePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53081     PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53082     {
53083       *this = rhs;
53084     }
53085 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53086 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53087     PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53088     {
53089       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const *>( &rhs );
53090       return *this;
53091     }
53092 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53093     PhysicalDeviceSparseProperties & operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53094     {
53095       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSparseProperties ) );
53096       return *this;
53097     }
53098 
53099 
operator VkPhysicalDeviceSparseProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53100     operator VkPhysicalDeviceSparseProperties const&() const VULKAN_HPP_NOEXCEPT
53101     {
53102       return *reinterpret_cast<const VkPhysicalDeviceSparseProperties*>( this );
53103     }
53104 
operator VkPhysicalDeviceSparseProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53105     operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
53106     {
53107       return *reinterpret_cast<VkPhysicalDeviceSparseProperties*>( this );
53108     }
53109 
53110 
53111 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53112     auto operator<=>( PhysicalDeviceSparseProperties const& ) const = default;
53113 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53114     bool operator==( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53115     {
53116       return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape )
53117           && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape )
53118           && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape )
53119           && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize )
53120           && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
53121     }
53122 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties53123     bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53124     {
53125       return !operator==( rhs );
53126     }
53127 #endif
53128 
53129 
53130 
53131   public:
53132     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {};
53133     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {};
53134     VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {};
53135     VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {};
53136     VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {};
53137 
53138   };
53139   static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" );
53140   static_assert( std::is_standard_layout<PhysicalDeviceSparseProperties>::value, "struct wrapper is not a standard layout!" );
53141 
53142   struct PhysicalDeviceProperties
53143   {
53144 
53145 
53146 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53147     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties(uint32_t apiVersion_ = {}, uint32_t driverVersion_ = {}, uint32_t vendorID_ = {}, uint32_t deviceID_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType_ = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther, std::array<char,VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> const& deviceName_ = {}, std::array<uint8_t,VK_UUID_SIZE> const& pipelineCacheUUID_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {}) VULKAN_HPP_NOEXCEPT
53148     : apiVersion( apiVersion_ ), driverVersion( driverVersion_ ), vendorID( vendorID_ ), deviceID( deviceID_ ), deviceType( deviceType_ ), deviceName( deviceName_ ), pipelineCacheUUID( pipelineCacheUUID_ ), limits( limits_ ), sparseProperties( sparseProperties_ )
53149     {}
53150 
53151     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53152 
PhysicalDevicePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53153     PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53154     {
53155       *this = rhs;
53156     }
53157 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53158 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53159     PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53160     {
53161       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const *>( &rhs );
53162       return *this;
53163     }
53164 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53165     PhysicalDeviceProperties & operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53166     {
53167       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProperties ) );
53168       return *this;
53169     }
53170 
53171 
operator VkPhysicalDeviceProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53172     operator VkPhysicalDeviceProperties const&() const VULKAN_HPP_NOEXCEPT
53173     {
53174       return *reinterpret_cast<const VkPhysicalDeviceProperties*>( this );
53175     }
53176 
operator VkPhysicalDeviceProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53177     operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
53178     {
53179       return *reinterpret_cast<VkPhysicalDeviceProperties*>( this );
53180     }
53181 
53182 
53183 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53184     auto operator<=>( PhysicalDeviceProperties const& ) const = default;
53185 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53186     bool operator==( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53187     {
53188       return ( apiVersion == rhs.apiVersion )
53189           && ( driverVersion == rhs.driverVersion )
53190           && ( vendorID == rhs.vendorID )
53191           && ( deviceID == rhs.deviceID )
53192           && ( deviceType == rhs.deviceType )
53193           && ( deviceName == rhs.deviceName )
53194           && ( pipelineCacheUUID == rhs.pipelineCacheUUID )
53195           && ( limits == rhs.limits )
53196           && ( sparseProperties == rhs.sparseProperties );
53197     }
53198 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties53199     bool operator!=( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53200     {
53201       return !operator==( rhs );
53202     }
53203 #endif
53204 
53205 
53206 
53207   public:
53208     uint32_t apiVersion = {};
53209     uint32_t driverVersion = {};
53210     uint32_t vendorID = {};
53211     uint32_t deviceID = {};
53212     VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther;
53213     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> deviceName = {};
53214     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
53215     VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {};
53216     VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {};
53217 
53218   };
53219   static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" );
53220   static_assert( std::is_standard_layout<PhysicalDeviceProperties>::value, "struct wrapper is not a standard layout!" );
53221 
53222   struct PhysicalDeviceProperties2
53223   {
53224     static const bool allowDuplicate = false;
53225     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2;
53226 
53227 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253228     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {}) VULKAN_HPP_NOEXCEPT
53229     : properties( properties_ )
53230     {}
53231 
53232     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53233 
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253234     PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53235     {
53236       *this = rhs;
53237     }
53238 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53239 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253240     PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53241     {
53242       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const *>( &rhs );
53243       return *this;
53244     }
53245 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253246     PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53247     {
53248       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProperties2 ) );
53249       return *this;
53250     }
53251 
53252 
operator VkPhysicalDeviceProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253253     operator VkPhysicalDeviceProperties2 const&() const VULKAN_HPP_NOEXCEPT
53254     {
53255       return *reinterpret_cast<const VkPhysicalDeviceProperties2*>( this );
53256     }
53257 
operator VkPhysicalDeviceProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253258     operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
53259     {
53260       return *reinterpret_cast<VkPhysicalDeviceProperties2*>( this );
53261     }
53262 
53263 
53264 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53265     auto operator<=>( PhysicalDeviceProperties2 const& ) const = default;
53266 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253267     bool operator==( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53268     {
53269       return ( sType == rhs.sType )
53270           && ( pNext == rhs.pNext )
53271           && ( properties == rhs.properties );
53272     }
53273 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties253274     bool operator!=( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53275     {
53276       return !operator==( rhs );
53277     }
53278 #endif
53279 
53280 
53281 
53282   public:
53283     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2;
53284     void* pNext = {};
53285     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {};
53286 
53287   };
53288   static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" );
53289   static_assert( std::is_standard_layout<PhysicalDeviceProperties2>::value, "struct wrapper is not a standard layout!" );
53290 
53291   template <>
53292   struct CppType<StructureType, StructureType::ePhysicalDeviceProperties2>
53293   {
53294     using Type = PhysicalDeviceProperties2;
53295   };
53296   using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
53297 
53298   struct QueryPoolPerformanceCreateInfoKHR
53299   {
53300     static const bool allowDuplicate = false;
53301     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
53302 
53303 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53304     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR(uint32_t queueFamilyIndex_ = {}, uint32_t counterIndexCount_ = {}, const uint32_t* pCounterIndices_ = {}) VULKAN_HPP_NOEXCEPT
53305     : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( counterIndexCount_ ), pCounterIndices( pCounterIndices_ )
53306     {}
53307 
53308     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53309 
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53310     QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53311     {
53312       *this = rhs;
53313     }
53314 
53315 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
QueryPoolPerformanceCreateInfoKHRVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53316     QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ )
53317     : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( static_cast<uint32_t>( counterIndices_.size() ) ), pCounterIndices( counterIndices_.data() )
53318     {}
53319 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
53320 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53321 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53322     QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53323     {
53324       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const *>( &rhs );
53325       return *this;
53326     }
53327 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53328     QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53329     {
53330       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueryPoolPerformanceCreateInfoKHR ) );
53331       return *this;
53332     }
53333 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53334     QueryPoolPerformanceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
53335     {
53336       pNext = pNext_;
53337       return *this;
53338     }
53339 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53340     QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
53341     {
53342       queueFamilyIndex = queueFamilyIndex_;
53343       return *this;
53344     }
53345 
setCounterIndexCountVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53346     QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT
53347     {
53348       counterIndexCount = counterIndexCount_;
53349       return *this;
53350     }
53351 
setPCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53352     QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t* pCounterIndices_ ) VULKAN_HPP_NOEXCEPT
53353     {
53354       pCounterIndices = pCounterIndices_;
53355       return *this;
53356     }
53357 
53358 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCounterIndicesVULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53359     QueryPoolPerformanceCreateInfoKHR & setCounterIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ ) VULKAN_HPP_NOEXCEPT
53360     {
53361       counterIndexCount = static_cast<uint32_t>( counterIndices_.size() );
53362       pCounterIndices = counterIndices_.data();
53363       return *this;
53364     }
53365 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
53366 
53367 
operator VkQueryPoolPerformanceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53368     operator VkQueryPoolPerformanceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
53369     {
53370       return *reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>( this );
53371     }
53372 
operator VkQueryPoolPerformanceCreateInfoKHR&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53373     operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
53374     {
53375       return *reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>( this );
53376     }
53377 
53378 
53379 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53380     auto operator<=>( QueryPoolPerformanceCreateInfoKHR const& ) const = default;
53381 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53382     bool operator==( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53383     {
53384       return ( sType == rhs.sType )
53385           && ( pNext == rhs.pNext )
53386           && ( queueFamilyIndex == rhs.queueFamilyIndex )
53387           && ( counterIndexCount == rhs.counterIndexCount )
53388           && ( pCounterIndices == rhs.pCounterIndices );
53389     }
53390 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR53391     bool operator!=( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53392     {
53393       return !operator==( rhs );
53394     }
53395 #endif
53396 
53397 
53398 
53399   public:
53400     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
53401     const void* pNext = {};
53402     uint32_t queueFamilyIndex = {};
53403     uint32_t counterIndexCount = {};
53404     const uint32_t* pCounterIndices = {};
53405 
53406   };
53407   static_assert( sizeof( QueryPoolPerformanceCreateInfoKHR ) == sizeof( VkQueryPoolPerformanceCreateInfoKHR ), "struct and wrapper have different size!" );
53408   static_assert( std::is_standard_layout<QueryPoolPerformanceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
53409 
53410   template <>
53411   struct CppType<StructureType, StructureType::eQueryPoolPerformanceCreateInfoKHR>
53412   {
53413     using Type = QueryPoolPerformanceCreateInfoKHR;
53414   };
53415 
53416   struct QueueFamilyProperties
53417   {
53418 
53419 
53420 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties53421     VULKAN_HPP_CONSTEXPR QueueFamilyProperties(VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {}, uint32_t queueCount_ = {}, uint32_t timestampValidBits_ = {}, VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {}) VULKAN_HPP_NOEXCEPT
53422     : queueFlags( queueFlags_ ), queueCount( queueCount_ ), timestampValidBits( timestampValidBits_ ), minImageTransferGranularity( minImageTransferGranularity_ )
53423     {}
53424 
53425     VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53426 
QueueFamilyPropertiesVULKAN_HPP_NAMESPACE::QueueFamilyProperties53427     QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53428     {
53429       *this = rhs;
53430     }
53431 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53432 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties53433     QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53434     {
53435       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties const *>( &rhs );
53436       return *this;
53437     }
53438 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties53439     QueueFamilyProperties & operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
53440     {
53441       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueueFamilyProperties ) );
53442       return *this;
53443     }
53444 
53445 
operator VkQueueFamilyProperties const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties53446     operator VkQueueFamilyProperties const&() const VULKAN_HPP_NOEXCEPT
53447     {
53448       return *reinterpret_cast<const VkQueueFamilyProperties*>( this );
53449     }
53450 
operator VkQueueFamilyProperties&VULKAN_HPP_NAMESPACE::QueueFamilyProperties53451     operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
53452     {
53453       return *reinterpret_cast<VkQueueFamilyProperties*>( this );
53454     }
53455 
53456 
53457 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53458     auto operator<=>( QueueFamilyProperties const& ) const = default;
53459 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties53460     bool operator==( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53461     {
53462       return ( queueFlags == rhs.queueFlags )
53463           && ( queueCount == rhs.queueCount )
53464           && ( timestampValidBits == rhs.timestampValidBits )
53465           && ( minImageTransferGranularity == rhs.minImageTransferGranularity );
53466     }
53467 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties53468     bool operator!=( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
53469     {
53470       return !operator==( rhs );
53471     }
53472 #endif
53473 
53474 
53475 
53476   public:
53477     VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {};
53478     uint32_t queueCount = {};
53479     uint32_t timestampValidBits = {};
53480     VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {};
53481 
53482   };
53483   static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" );
53484   static_assert( std::is_standard_layout<QueueFamilyProperties>::value, "struct wrapper is not a standard layout!" );
53485 
53486   struct QueueFamilyProperties2
53487   {
53488     static const bool allowDuplicate = false;
53489     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2;
53490 
53491 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties253492     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2(VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {}) VULKAN_HPP_NOEXCEPT
53493     : queueFamilyProperties( queueFamilyProperties_ )
53494     {}
53495 
53496     VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53497 
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::QueueFamilyProperties253498     QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53499     {
53500       *this = rhs;
53501     }
53502 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53503 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties253504     QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53505     {
53506       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const *>( &rhs );
53507       return *this;
53508     }
53509 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyProperties253510     QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53511     {
53512       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueueFamilyProperties2 ) );
53513       return *this;
53514     }
53515 
53516 
operator VkQueueFamilyProperties2 const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties253517     operator VkQueueFamilyProperties2 const&() const VULKAN_HPP_NOEXCEPT
53518     {
53519       return *reinterpret_cast<const VkQueueFamilyProperties2*>( this );
53520     }
53521 
operator VkQueueFamilyProperties2&VULKAN_HPP_NAMESPACE::QueueFamilyProperties253522     operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
53523     {
53524       return *reinterpret_cast<VkQueueFamilyProperties2*>( this );
53525     }
53526 
53527 
53528 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53529     auto operator<=>( QueueFamilyProperties2 const& ) const = default;
53530 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties253531     bool operator==( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53532     {
53533       return ( sType == rhs.sType )
53534           && ( pNext == rhs.pNext )
53535           && ( queueFamilyProperties == rhs.queueFamilyProperties );
53536     }
53537 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties253538     bool operator!=( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53539     {
53540       return !operator==( rhs );
53541     }
53542 #endif
53543 
53544 
53545 
53546   public:
53547     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2;
53548     void* pNext = {};
53549     VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {};
53550 
53551   };
53552   static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" );
53553   static_assert( std::is_standard_layout<QueueFamilyProperties2>::value, "struct wrapper is not a standard layout!" );
53554 
53555   template <>
53556   struct CppType<StructureType, StructureType::eQueueFamilyProperties2>
53557   {
53558     using Type = QueueFamilyProperties2;
53559   };
53560   using QueueFamilyProperties2KHR = QueueFamilyProperties2;
53561 
53562   struct PhysicalDeviceSparseImageFormatInfo2
53563   {
53564     static const bool allowDuplicate = false;
53565     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
53566 
53567 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253568     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal) VULKAN_HPP_NOEXCEPT
53569     : format( format_ ), type( type_ ), samples( samples_ ), usage( usage_ ), tiling( tiling_ )
53570     {}
53571 
53572     VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53573 
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253574     PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53575     {
53576       *this = rhs;
53577     }
53578 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53579 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253580     PhysicalDeviceSparseImageFormatInfo2 & operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53581     {
53582       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs );
53583       return *this;
53584     }
53585 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253586     PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
53587     {
53588       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSparseImageFormatInfo2 ) );
53589       return *this;
53590     }
53591 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253592     PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
53593     {
53594       pNext = pNext_;
53595       return *this;
53596     }
53597 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253598     PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
53599     {
53600       format = format_;
53601       return *this;
53602     }
53603 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253604     PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
53605     {
53606       type = type_;
53607       return *this;
53608     }
53609 
setSamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253610     PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
53611     {
53612       samples = samples_;
53613       return *this;
53614     }
53615 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253616     PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
53617     {
53618       usage = usage_;
53619       return *this;
53620     }
53621 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253622     PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
53623     {
53624       tiling = tiling_;
53625       return *this;
53626     }
53627 
53628 
operator VkPhysicalDeviceSparseImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253629     operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT
53630     {
53631       return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( this );
53632     }
53633 
operator VkPhysicalDeviceSparseImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253634     operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
53635     {
53636       return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>( this );
53637     }
53638 
53639 
53640 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53641     auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const& ) const = default;
53642 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253643     bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53644     {
53645       return ( sType == rhs.sType )
53646           && ( pNext == rhs.pNext )
53647           && ( format == rhs.format )
53648           && ( type == rhs.type )
53649           && ( samples == rhs.samples )
53650           && ( usage == rhs.usage )
53651           && ( tiling == rhs.tiling );
53652     }
53653 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo253654     bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53655     {
53656       return !operator==( rhs );
53657     }
53658 #endif
53659 
53660 
53661 
53662   public:
53663     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
53664     const void* pNext = {};
53665     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
53666     VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
53667     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
53668     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
53669     VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
53670 
53671   };
53672   static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" );
53673   static_assert( std::is_standard_layout<PhysicalDeviceSparseImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
53674 
53675   template <>
53676   struct CppType<StructureType, StructureType::ePhysicalDeviceSparseImageFormatInfo2>
53677   {
53678     using Type = PhysicalDeviceSparseImageFormatInfo2;
53679   };
53680   using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
53681 
53682   struct SparseImageFormatProperties2
53683   {
53684     static const bool allowDuplicate = false;
53685     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2;
53686 
53687 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253688     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {}) VULKAN_HPP_NOEXCEPT
53689     : properties( properties_ )
53690     {}
53691 
53692     VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53693 
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253694     SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53695     {
53696       *this = rhs;
53697     }
53698 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53699 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253700     SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53701     {
53702       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const *>( &rhs );
53703       return *this;
53704     }
53705 
operator =VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253706     SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
53707     {
53708       memcpy( static_cast<void *>( this ), &rhs, sizeof( SparseImageFormatProperties2 ) );
53709       return *this;
53710     }
53711 
53712 
operator VkSparseImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253713     operator VkSparseImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT
53714     {
53715       return *reinterpret_cast<const VkSparseImageFormatProperties2*>( this );
53716     }
53717 
operator VkSparseImageFormatProperties2&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253718     operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
53719     {
53720       return *reinterpret_cast<VkSparseImageFormatProperties2*>( this );
53721     }
53722 
53723 
53724 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53725     auto operator<=>( SparseImageFormatProperties2 const& ) const = default;
53726 #else
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253727     bool operator==( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53728     {
53729       return ( sType == rhs.sType )
53730           && ( pNext == rhs.pNext )
53731           && ( properties == rhs.properties );
53732     }
53733 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties253734     bool operator!=( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT
53735     {
53736       return !operator==( rhs );
53737     }
53738 #endif
53739 
53740 
53741 
53742   public:
53743     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2;
53744     void* pNext = {};
53745     VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {};
53746 
53747   };
53748   static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" );
53749   static_assert( std::is_standard_layout<SparseImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
53750 
53751   template <>
53752   struct CppType<StructureType, StructureType::eSparseImageFormatProperties2>
53753   {
53754     using Type = SparseImageFormatProperties2;
53755   };
53756   using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
53757 
53758   struct FramebufferMixedSamplesCombinationNV
53759   {
53760     static const bool allowDuplicate = false;
53761     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV;
53762 
53763 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53764     VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV(VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {}) VULKAN_HPP_NOEXCEPT
53765     : coverageReductionMode( coverageReductionMode_ ), rasterizationSamples( rasterizationSamples_ ), depthStencilSamples( depthStencilSamples_ ), colorSamples( colorSamples_ )
53766     {}
53767 
53768     VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53769 
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53770     FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
53771     {
53772       *this = rhs;
53773     }
53774 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53775 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53776     FramebufferMixedSamplesCombinationNV & operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
53777     {
53778       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const *>( &rhs );
53779       return *this;
53780     }
53781 
operator =VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53782     FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
53783     {
53784       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferMixedSamplesCombinationNV ) );
53785       return *this;
53786     }
53787 
53788 
operator VkFramebufferMixedSamplesCombinationNV const&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53789     operator VkFramebufferMixedSamplesCombinationNV const&() const VULKAN_HPP_NOEXCEPT
53790     {
53791       return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV*>( this );
53792     }
53793 
operator VkFramebufferMixedSamplesCombinationNV&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53794     operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT
53795     {
53796       return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( this );
53797     }
53798 
53799 
53800 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53801     auto operator<=>( FramebufferMixedSamplesCombinationNV const& ) const = default;
53802 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53803     bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
53804     {
53805       return ( sType == rhs.sType )
53806           && ( pNext == rhs.pNext )
53807           && ( coverageReductionMode == rhs.coverageReductionMode )
53808           && ( rasterizationSamples == rhs.rasterizationSamples )
53809           && ( depthStencilSamples == rhs.depthStencilSamples )
53810           && ( colorSamples == rhs.colorSamples );
53811     }
53812 
operator !=VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV53813     bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT
53814     {
53815       return !operator==( rhs );
53816     }
53817 #endif
53818 
53819 
53820 
53821   public:
53822     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
53823     void* pNext = {};
53824     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
53825     VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
53826     VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {};
53827     VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {};
53828 
53829   };
53830   static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" );
53831   static_assert( std::is_standard_layout<FramebufferMixedSamplesCombinationNV>::value, "struct wrapper is not a standard layout!" );
53832 
53833   template <>
53834   struct CppType<StructureType, StructureType::eFramebufferMixedSamplesCombinationNV>
53835   {
53836     using Type = FramebufferMixedSamplesCombinationNV;
53837   };
53838 
53839   struct SurfaceCapabilities2EXT
53840   {
53841     static const bool allowDuplicate = false;
53842     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT;
53843 
53844 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53845     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT(uint32_t minImageCount_ = {}, uint32_t maxImageCount_ = {}, VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, uint32_t maxImageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {}) VULKAN_HPP_NOEXCEPT
53846     : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ ), supportedSurfaceCounters( supportedSurfaceCounters_ )
53847     {}
53848 
53849     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53850 
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53851     SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
53852     {
53853       *this = rhs;
53854     }
53855 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53856 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53857     SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
53858     {
53859       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const *>( &rhs );
53860       return *this;
53861     }
53862 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53863     SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
53864     {
53865       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilities2EXT ) );
53866       return *this;
53867     }
53868 
53869 
operator VkSurfaceCapabilities2EXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53870     operator VkSurfaceCapabilities2EXT const&() const VULKAN_HPP_NOEXCEPT
53871     {
53872       return *reinterpret_cast<const VkSurfaceCapabilities2EXT*>( this );
53873     }
53874 
operator VkSurfaceCapabilities2EXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53875     operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
53876     {
53877       return *reinterpret_cast<VkSurfaceCapabilities2EXT*>( this );
53878     }
53879 
53880 
53881 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53882     auto operator<=>( SurfaceCapabilities2EXT const& ) const = default;
53883 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53884     bool operator==( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53885     {
53886       return ( sType == rhs.sType )
53887           && ( pNext == rhs.pNext )
53888           && ( minImageCount == rhs.minImageCount )
53889           && ( maxImageCount == rhs.maxImageCount )
53890           && ( currentExtent == rhs.currentExtent )
53891           && ( minImageExtent == rhs.minImageExtent )
53892           && ( maxImageExtent == rhs.maxImageExtent )
53893           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
53894           && ( supportedTransforms == rhs.supportedTransforms )
53895           && ( currentTransform == rhs.currentTransform )
53896           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
53897           && ( supportedUsageFlags == rhs.supportedUsageFlags )
53898           && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
53899     }
53900 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT53901     bool operator!=( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT
53902     {
53903       return !operator==( rhs );
53904     }
53905 #endif
53906 
53907 
53908 
53909   public:
53910     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT;
53911     void* pNext = {};
53912     uint32_t minImageCount = {};
53913     uint32_t maxImageCount = {};
53914     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
53915     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
53916     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
53917     uint32_t maxImageArrayLayers = {};
53918     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
53919     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
53920     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
53921     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
53922     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {};
53923 
53924   };
53925   static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" );
53926   static_assert( std::is_standard_layout<SurfaceCapabilities2EXT>::value, "struct wrapper is not a standard layout!" );
53927 
53928   template <>
53929   struct CppType<StructureType, StructureType::eSurfaceCapabilities2EXT>
53930   {
53931     using Type = SurfaceCapabilities2EXT;
53932   };
53933 
53934   struct SurfaceCapabilitiesKHR
53935   {
53936 
53937 
53938 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53939     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR(uint32_t minImageCount_ = {}, uint32_t maxImageCount_ = {}, VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, uint32_t maxImageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT
53940     : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ )
53941     {}
53942 
53943     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
53944 
SurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53945     SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53946     {
53947       *this = rhs;
53948     }
53949 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
53950 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53951     SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53952     {
53953       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const *>( &rhs );
53954       return *this;
53955     }
53956 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53957     SurfaceCapabilitiesKHR & operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
53958     {
53959       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilitiesKHR ) );
53960       return *this;
53961     }
53962 
53963 
operator VkSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53964     operator VkSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
53965     {
53966       return *reinterpret_cast<const VkSurfaceCapabilitiesKHR*>( this );
53967     }
53968 
operator VkSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53969     operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
53970     {
53971       return *reinterpret_cast<VkSurfaceCapabilitiesKHR*>( this );
53972     }
53973 
53974 
53975 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
53976     auto operator<=>( SurfaceCapabilitiesKHR const& ) const = default;
53977 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53978     bool operator==( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53979     {
53980       return ( minImageCount == rhs.minImageCount )
53981           && ( maxImageCount == rhs.maxImageCount )
53982           && ( currentExtent == rhs.currentExtent )
53983           && ( minImageExtent == rhs.minImageExtent )
53984           && ( maxImageExtent == rhs.maxImageExtent )
53985           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
53986           && ( supportedTransforms == rhs.supportedTransforms )
53987           && ( currentTransform == rhs.currentTransform )
53988           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
53989           && ( supportedUsageFlags == rhs.supportedUsageFlags );
53990     }
53991 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR53992     bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
53993     {
53994       return !operator==( rhs );
53995     }
53996 #endif
53997 
53998 
53999 
54000   public:
54001     uint32_t minImageCount = {};
54002     uint32_t maxImageCount = {};
54003     VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
54004     VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
54005     VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
54006     uint32_t maxImageArrayLayers = {};
54007     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
54008     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
54009     VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
54010     VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
54011 
54012   };
54013   static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
54014   static_assert( std::is_standard_layout<SurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
54015 
54016   struct SurfaceCapabilities2KHR
54017   {
54018     static const bool allowDuplicate = false;
54019     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR;
54020 
54021 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54022     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR(VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {}) VULKAN_HPP_NOEXCEPT
54023     : surfaceCapabilities( surfaceCapabilities_ )
54024     {}
54025 
54026     VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54027 
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54028     SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54029     {
54030       *this = rhs;
54031     }
54032 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54033 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54034     SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54035     {
54036       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const *>( &rhs );
54037       return *this;
54038     }
54039 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54040     SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54041     {
54042       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilities2KHR ) );
54043       return *this;
54044     }
54045 
54046 
operator VkSurfaceCapabilities2KHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54047     operator VkSurfaceCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT
54048     {
54049       return *reinterpret_cast<const VkSurfaceCapabilities2KHR*>( this );
54050     }
54051 
operator VkSurfaceCapabilities2KHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54052     operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
54053     {
54054       return *reinterpret_cast<VkSurfaceCapabilities2KHR*>( this );
54055     }
54056 
54057 
54058 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54059     auto operator<=>( SurfaceCapabilities2KHR const& ) const = default;
54060 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54061     bool operator==( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54062     {
54063       return ( sType == rhs.sType )
54064           && ( pNext == rhs.pNext )
54065           && ( surfaceCapabilities == rhs.surfaceCapabilities );
54066     }
54067 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR54068     bool operator!=( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54069     {
54070       return !operator==( rhs );
54071     }
54072 #endif
54073 
54074 
54075 
54076   public:
54077     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR;
54078     void* pNext = {};
54079     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {};
54080 
54081   };
54082   static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" );
54083   static_assert( std::is_standard_layout<SurfaceCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
54084 
54085   template <>
54086   struct CppType<StructureType, StructureType::eSurfaceCapabilities2KHR>
54087   {
54088     using Type = SurfaceCapabilities2KHR;
54089   };
54090 
54091   struct SurfaceFormatKHR
54092   {
54093 
54094 
54095 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR54096     VULKAN_HPP_CONSTEXPR SurfaceFormatKHR(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear) VULKAN_HPP_NOEXCEPT
54097     : format( format_ ), colorSpace( colorSpace_ )
54098     {}
54099 
54100     VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54101 
SurfaceFormatKHRVULKAN_HPP_NAMESPACE::SurfaceFormatKHR54102     SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54103     {
54104       *this = rhs;
54105     }
54106 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54107 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54108     SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54109     {
54110       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const *>( &rhs );
54111       return *this;
54112     }
54113 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54114     SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
54115     {
54116       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFormatKHR ) );
54117       return *this;
54118     }
54119 
54120 
operator VkSurfaceFormatKHR const&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54121     operator VkSurfaceFormatKHR const&() const VULKAN_HPP_NOEXCEPT
54122     {
54123       return *reinterpret_cast<const VkSurfaceFormatKHR*>( this );
54124     }
54125 
operator VkSurfaceFormatKHR&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54126     operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
54127     {
54128       return *reinterpret_cast<VkSurfaceFormatKHR*>( this );
54129     }
54130 
54131 
54132 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54133     auto operator<=>( SurfaceFormatKHR const& ) const = default;
54134 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54135     bool operator==( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54136     {
54137       return ( format == rhs.format )
54138           && ( colorSpace == rhs.colorSpace );
54139     }
54140 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormatKHR54141     bool operator!=( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54142     {
54143       return !operator==( rhs );
54144     }
54145 #endif
54146 
54147 
54148 
54149   public:
54150     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
54151     VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
54152 
54153   };
54154   static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" );
54155   static_assert( std::is_standard_layout<SurfaceFormatKHR>::value, "struct wrapper is not a standard layout!" );
54156 
54157   struct SurfaceFormat2KHR
54158   {
54159     static const bool allowDuplicate = false;
54160     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR;
54161 
54162 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54163     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR(VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}) VULKAN_HPP_NOEXCEPT
54164     : surfaceFormat( surfaceFormat_ )
54165     {}
54166 
54167     VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54168 
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54169     SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54170     {
54171       *this = rhs;
54172     }
54173 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54174 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54175     SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54176     {
54177       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const *>( &rhs );
54178       return *this;
54179     }
54180 
operator =VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54181     SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
54182     {
54183       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFormat2KHR ) );
54184       return *this;
54185     }
54186 
54187 
operator VkSurfaceFormat2KHR const&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54188     operator VkSurfaceFormat2KHR const&() const VULKAN_HPP_NOEXCEPT
54189     {
54190       return *reinterpret_cast<const VkSurfaceFormat2KHR*>( this );
54191     }
54192 
operator VkSurfaceFormat2KHR&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54193     operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
54194     {
54195       return *reinterpret_cast<VkSurfaceFormat2KHR*>( this );
54196     }
54197 
54198 
54199 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54200     auto operator<=>( SurfaceFormat2KHR const& ) const = default;
54201 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54202     bool operator==( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54203     {
54204       return ( sType == rhs.sType )
54205           && ( pNext == rhs.pNext )
54206           && ( surfaceFormat == rhs.surfaceFormat );
54207     }
54208 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR54209     bool operator!=( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT
54210     {
54211       return !operator==( rhs );
54212     }
54213 #endif
54214 
54215 
54216 
54217   public:
54218     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR;
54219     void* pNext = {};
54220     VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {};
54221 
54222   };
54223   static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" );
54224   static_assert( std::is_standard_layout<SurfaceFormat2KHR>::value, "struct wrapper is not a standard layout!" );
54225 
54226   template <>
54227   struct CppType<StructureType, StructureType::eSurfaceFormat2KHR>
54228   {
54229     using Type = SurfaceFormat2KHR;
54230   };
54231 
54232   struct PhysicalDeviceToolPropertiesEXT
54233   {
54234     static const bool allowDuplicate = false;
54235     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolPropertiesEXT;
54236 
54237 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54238     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT(std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& name_ = {}, std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& version_ = {}, VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes_ = {}, std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = {}, std::array<char,VK_MAX_EXTENSION_NAME_SIZE> const& layer_ = {}) VULKAN_HPP_NOEXCEPT
54239     : name( name_ ), version( version_ ), purposes( purposes_ ), description( description_ ), layer( layer_ )
54240     {}
54241 
54242     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
54243 
PhysicalDeviceToolPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54244     PhysicalDeviceToolPropertiesEXT( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54245     {
54246       *this = rhs;
54247     }
54248 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
54249 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54250     PhysicalDeviceToolPropertiesEXT & operator=( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54251     {
54252       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT const *>( &rhs );
54253       return *this;
54254     }
54255 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54256     PhysicalDeviceToolPropertiesEXT & operator=( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
54257     {
54258       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceToolPropertiesEXT ) );
54259       return *this;
54260     }
54261 
54262 
operator VkPhysicalDeviceToolPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54263     operator VkPhysicalDeviceToolPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
54264     {
54265       return *reinterpret_cast<const VkPhysicalDeviceToolPropertiesEXT*>( this );
54266     }
54267 
operator VkPhysicalDeviceToolPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54268     operator VkPhysicalDeviceToolPropertiesEXT &() VULKAN_HPP_NOEXCEPT
54269     {
54270       return *reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT*>( this );
54271     }
54272 
54273 
54274 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54275     auto operator<=>( PhysicalDeviceToolPropertiesEXT const& ) const = default;
54276 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54277     bool operator==( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54278     {
54279       return ( sType == rhs.sType )
54280           && ( pNext == rhs.pNext )
54281           && ( name == rhs.name )
54282           && ( version == rhs.version )
54283           && ( purposes == rhs.purposes )
54284           && ( description == rhs.description )
54285           && ( layer == rhs.layer );
54286     }
54287 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT54288     bool operator!=( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
54289     {
54290       return !operator==( rhs );
54291     }
54292 #endif
54293 
54294 
54295 
54296   public:
54297     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolPropertiesEXT;
54298     void* pNext = {};
54299     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> name = {};
54300     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> version = {};
54301     VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes = {};
54302     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
54303     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layer = {};
54304 
54305   };
54306   static_assert( sizeof( PhysicalDeviceToolPropertiesEXT ) == sizeof( VkPhysicalDeviceToolPropertiesEXT ), "struct and wrapper have different size!" );
54307   static_assert( std::is_standard_layout<PhysicalDeviceToolPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
54308 
54309   template <>
54310   struct CppType<StructureType, StructureType::ePhysicalDeviceToolPropertiesEXT>
54311   {
54312     using Type = PhysicalDeviceToolPropertiesEXT;
54313   };
54314 
54315 #ifndef VULKAN_HPP_NO_SMART_HANDLE
54316   template <typename Dispatch> class UniqueHandleTraits<Device, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
54317   using UniqueDevice = UniqueHandle<Device, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
54318 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54319 
54320   class PhysicalDevice
54321   {
54322   public:
54323     using CType = VkPhysicalDevice;
54324 
54325     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice;
54326     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice;
54327 
54328   public:
PhysicalDevice()54329     VULKAN_HPP_CONSTEXPR PhysicalDevice() VULKAN_HPP_NOEXCEPT
54330       : m_physicalDevice(VK_NULL_HANDLE)
54331     {}
54332 
PhysicalDevice(std::nullptr_t)54333     VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
54334       : m_physicalDevice(VK_NULL_HANDLE)
54335     {}
54336 
PhysicalDevice(VkPhysicalDevice physicalDevice)54337     VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT
54338       : m_physicalDevice( physicalDevice )
54339     {}
54340 
54341 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPhysicalDevice physicalDevice)54342     PhysicalDevice & operator=(VkPhysicalDevice physicalDevice) VULKAN_HPP_NOEXCEPT
54343     {
54344       m_physicalDevice = physicalDevice;
54345       return *this;
54346     }
54347 #endif
54348 
operator =(std::nullptr_t)54349     PhysicalDevice & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
54350     {
54351       m_physicalDevice = VK_NULL_HANDLE;
54352       return *this;
54353     }
54354 
54355 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
54356     auto operator<=>( PhysicalDevice const& ) const = default;
54357 #else
operator ==(PhysicalDevice const & rhs) const54358     bool operator==( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
54359     {
54360       return m_physicalDevice == rhs.m_physicalDevice;
54361     }
54362 
operator !=(PhysicalDevice const & rhs) const54363     bool operator!=(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
54364     {
54365       return m_physicalDevice != rhs.m_physicalDevice;
54366     }
54367 
operator <(PhysicalDevice const & rhs) const54368     bool operator<(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT
54369     {
54370       return m_physicalDevice < rhs.m_physicalDevice;
54371     }
54372 #endif
54373 
54374 
54375 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
54376     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54377     VULKAN_HPP_NODISCARD Result acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54378 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54379     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54380     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<void>::type acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54381 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54382 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
54383 
54384 
54385     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54386     VULKAN_HPP_NODISCARD Result createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Device* pDevice, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54387 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54388     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54389     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Device>::type createDevice( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54390 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
54391   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54392   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Device, Dispatch>>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54393 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54395 
54396 
54397     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54398     VULKAN_HPP_NODISCARD Result createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DisplayModeKHR* pMode, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54399 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54400     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54401     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayModeKHR>::type createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54402 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
54403   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54404   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>>::type createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54405 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54406 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54407 
54408 
54409     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54410     VULKAN_HPP_NODISCARD Result enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54411 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54412     template <typename ExtensionPropertiesAllocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54413     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54414     template <typename ExtensionPropertiesAllocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ExtensionPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type = 0>
54415     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54416 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54417 
54418 
54419     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54420     VULKAN_HPP_NODISCARD Result enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54421 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54422     template <typename LayerPropertiesAllocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54423     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateDeviceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54424     template <typename LayerPropertiesAllocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = LayerPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type = 0>
54425     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54426 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54427 
54428 
54429     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54430     VULKAN_HPP_NODISCARD Result enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54431 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54432     template <typename Allocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch  = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54433     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PerformanceCounterDescriptionKHR,Allocator>>::type enumerateQueueFamilyPerformanceQueryCountersKHR(  uint32_t queueFamilyIndex, ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> const &counters, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
54434     template <typename Allocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch  = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if<std::is_same<typename B::value_type, PerformanceCounterDescriptionKHR>::value, int>::type = 0>
54435     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PerformanceCounterDescriptionKHR,Allocator>>::type enumerateQueueFamilyPerformanceQueryCountersKHR(  uint32_t queueFamilyIndex, ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> const &counters, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT  ) const;
54436     template <typename PerformanceCounterKHRAllocator = std::allocator<PerformanceCounterKHR>, typename PerformanceCounterDescriptionKHRAllocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54437     VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54438     template <typename PerformanceCounterKHRAllocator = std::allocator<PerformanceCounterKHR>, typename PerformanceCounterDescriptionKHRAllocator = std::allocator<PerformanceCounterDescriptionKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B1 = PerformanceCounterKHRAllocator, typename B2 = PerformanceCounterDescriptionKHRAllocator, typename std::enable_if<std::is_same<typename B1::value_type, PerformanceCounterKHR>::value && std::is_same<typename B2::value_type, PerformanceCounterDescriptionKHR>::value, int>::type = 0>
54439     VULKAN_HPP_NODISCARD typename ResultValueType<std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54440 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54441 
54442 
54443     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54444     VULKAN_HPP_NODISCARD Result getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54445 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54446     template <typename DisplayModeProperties2KHRAllocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54447     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54448     template <typename DisplayModeProperties2KHRAllocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayModeProperties2KHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayModeProperties2KHR>::value, int>::type = 0>
54449     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54450 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54451 
54452 
54453     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54454     VULKAN_HPP_NODISCARD Result getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54455 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54456     template <typename DisplayModePropertiesKHRAllocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54457     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54458     template <typename DisplayModePropertiesKHRAllocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayModePropertiesKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayModePropertiesKHR>::value, int>::type = 0>
54459     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54460 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54461 
54462 
54463     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54464     VULKAN_HPP_NODISCARD Result getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54465 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54466     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54467     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR>::type getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54468 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54469 
54470 
54471     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54472     VULKAN_HPP_NODISCARD Result getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54473 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54474     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54475     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR>::type getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54476 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54477 
54478 
54479     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54480     VULKAN_HPP_NODISCARD Result getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54481 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54482     template <typename DisplayKHRAllocator = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54483     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayKHR, DisplayKHRAllocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54484     template <typename DisplayKHRAllocator = std::allocator<DisplayKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayKHR>::value, int>::type = 0>
54485     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayKHR, DisplayKHRAllocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54486 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54487 
54488 
54489     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54490     VULKAN_HPP_NODISCARD Result getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54491 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54492     template <typename TimeDomainEXTAllocator = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54493     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<TimeDomainEXT, TimeDomainEXTAllocator>>::type getCalibrateableTimeDomainsEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54494     template <typename TimeDomainEXTAllocator = std::allocator<TimeDomainEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = TimeDomainEXTAllocator, typename std::enable_if<std::is_same<typename B::value_type, TimeDomainEXT>::value, int>::type = 0>
54495     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<TimeDomainEXT, TimeDomainEXTAllocator>>::type getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54496 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54497 
54498 
54499     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54500     VULKAN_HPP_NODISCARD Result getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54501 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54502     template <typename CooperativeMatrixPropertiesNVAllocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54503     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type getCooperativeMatrixPropertiesNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54504     template <typename CooperativeMatrixPropertiesNVAllocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CooperativeMatrixPropertiesNVAllocator, typename std::enable_if<std::is_same<typename B::value_type, CooperativeMatrixPropertiesNV>::value, int>::type = 0>
54505     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54506 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54507 
54508 
54509 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
54510     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54511     Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54512 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54513     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54514     Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54515 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54516 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
54517 
54518 
54519     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54520     VULKAN_HPP_NODISCARD Result getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54521 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54522     template <typename DisplayPlaneProperties2KHRAllocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54523     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type getDisplayPlaneProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54524     template <typename DisplayPlaneProperties2KHRAllocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPlaneProperties2KHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlaneProperties2KHR>::value, int>::type = 0>
54525     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54526 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54527 
54528 
54529     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54530     VULKAN_HPP_NODISCARD Result getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54531 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54532     template <typename DisplayPlanePropertiesKHRAllocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54533     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type getDisplayPlanePropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54534     template <typename DisplayPlanePropertiesKHRAllocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPlanePropertiesKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlanePropertiesKHR>::value, int>::type = 0>
54535     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54536 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54537 
54538 
54539     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54540     VULKAN_HPP_NODISCARD Result getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54541 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54542     template <typename DisplayProperties2KHRAllocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54543     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type getDisplayProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54544     template <typename DisplayProperties2KHRAllocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayProperties2KHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayProperties2KHR>::value, int>::type = 0>
54545     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54546 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54547 
54548 
54549     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54550     VULKAN_HPP_NODISCARD Result getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54551 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54552     template <typename DisplayPropertiesKHRAllocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54553     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type getDisplayPropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54554     template <typename DisplayPropertiesKHRAllocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPropertiesKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, DisplayPropertiesKHR>::value, int>::type = 0>
54555     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54557 
54558 
54559     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54560     void getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54561 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54562     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54563     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54564 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54565 
54566     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54567     void getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54568 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54569     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54570     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54571 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54572 
54573 
54574     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54575     void getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54576 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54577     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54578     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54579 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54580 
54581     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54582     void getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54583 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54584     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54585     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54587 
54588 
54589     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54590     VULKAN_HPP_NODISCARD Result getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54591 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54592     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54593     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV>::type getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54594 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54595 
54596 
54597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54598     void getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54599 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54600     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54601     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54602 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54603 
54604     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54605     void getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54606 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54607     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54608     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54609 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54610 
54611 
54612     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54613     void getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54614 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54615     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54616     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54617 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54618 
54619 
54620     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54621     void getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54622 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54623     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54624     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54625     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54626     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54627 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54628 
54629     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54630     void getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54631 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54632     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54633     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54634     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54635     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54637 
54638 
54639     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54640     void getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54641 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54642     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54643     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54644 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54645 
54646 
54647     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54648     void getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54649 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54650     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54651     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54652     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54653     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54654 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54655 
54656     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54657     void getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54658 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54659     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54660     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54661     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54662     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54663 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54664 
54665 
54666     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54667     VULKAN_HPP_NODISCARD Result getFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54668 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54669     template <typename PhysicalDeviceFragmentShadingRateKHRAllocator = std::allocator<PhysicalDeviceFragmentShadingRateKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54670     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type getFragmentShadingRatesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54671     template <typename PhysicalDeviceFragmentShadingRateKHRAllocator = std::allocator<PhysicalDeviceFragmentShadingRateKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceFragmentShadingRateKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceFragmentShadingRateKHR>::value, int>::type = 0>
54672     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54673 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54674 
54675 
54676     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54677     VULKAN_HPP_NODISCARD Result getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ImageFormatProperties* pImageFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54678 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54679     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54680     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties>::type getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54681 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54682 
54683 
54684     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54685     VULKAN_HPP_NODISCARD Result getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54686 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54687     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54688     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54689     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54690     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54691 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54692 
54693     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54694     VULKAN_HPP_NODISCARD Result getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54695 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54696     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54697     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54698     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54699     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54700 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54701 
54702 
54703     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54704     void getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54705 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54706     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54707     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54709 
54710 
54711     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54712     void getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54713 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54714     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54715     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54716     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54717     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54718 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54719 
54720     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54721     void getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54722 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54723     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54724     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54725     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54726     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54727 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54728 
54729 
54730     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54731     void getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54732 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54733     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54734     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54735 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54736 
54737 
54738     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54739     VULKAN_HPP_NODISCARD Result getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pRectCount, VULKAN_HPP_NAMESPACE::Rect2D* pRects, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54740 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54741     template <typename Rect2DAllocator = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54742     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Rect2D, Rect2DAllocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54743     template <typename Rect2DAllocator = std::allocator<Rect2D>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Rect2DAllocator, typename std::enable_if<std::is_same<typename B::value_type, Rect2D>::value, int>::type = 0>
54744     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<Rect2D, Rect2DAllocator>>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54745 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54746 
54747 
54748     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54749     void getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54750 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54751     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54752     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54753 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54754 
54755 
54756     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54757     void getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54758 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54759     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54760     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54761     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54762     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54763 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54764 
54765     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54766     void getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54767 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54768     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54769     VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54770     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54771     VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54772 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54773 
54774 
54775     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54776     void getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54777 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54778     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54779     VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54780 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54781 
54782 
54783     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54784     void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54785 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54786     template <typename QueueFamilyPropertiesAllocator = std::allocator<QueueFamilyProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54787     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> getQueueFamilyProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54788     template <typename QueueFamilyPropertiesAllocator = std::allocator<QueueFamilyProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties>::value, int>::type = 0>
54789     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54790 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54791 
54792 
54793     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54794     void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54795 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54796     template <typename QueueFamilyProperties2Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54797     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54798     template <typename QueueFamilyProperties2Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyProperties2Allocator, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type = 0>
54799     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54800     template <typename StructureChain, typename StructureChainAllocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54801     VULKAN_HPP_NODISCARD std::vector<StructureChain, StructureChainAllocator> getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54802     template <typename StructureChain, typename StructureChainAllocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = StructureChainAllocator, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type = 0>
54803     VULKAN_HPP_NODISCARD std::vector<StructureChain, StructureChainAllocator> getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54805 
54806     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54807     void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54808 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54809     template <typename QueueFamilyProperties2Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54810     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54811     template <typename QueueFamilyProperties2Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyProperties2Allocator, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type = 0>
54812     VULKAN_HPP_NODISCARD std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54813     template <typename StructureChain, typename StructureChainAllocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54814     VULKAN_HPP_NODISCARD std::vector<StructureChain, StructureChainAllocator> getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54815     template <typename StructureChain, typename StructureChainAllocator = std::allocator<StructureChain>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = StructureChainAllocator, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type = 0>
54816     VULKAN_HPP_NODISCARD std::vector<StructureChain, StructureChainAllocator> getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54817 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54818 
54819 
54820     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54821     void getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54822 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54823     template <typename SparseImageFormatPropertiesAllocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54824     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54825     template <typename SparseImageFormatPropertiesAllocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageFormatPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, SparseImageFormatProperties>::value, int>::type = 0>
54826     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54827 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54828 
54829 
54830     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54831     void getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54832 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54833     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54834     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54835     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageFormatProperties2Allocator, typename std::enable_if<std::is_same<typename B::value_type, SparseImageFormatProperties2>::value, int>::type = 0>
54836     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54837 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54838 
54839     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54840     void getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54841 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54842     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54843     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54844     template <typename SparseImageFormatProperties2Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageFormatProperties2Allocator, typename std::enable_if<std::is_same<typename B::value_type, SparseImageFormatProperties2>::value, int>::type = 0>
54845     VULKAN_HPP_NODISCARD std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54846 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54847 
54848 
54849     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54850     VULKAN_HPP_NODISCARD Result getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54851 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54852     template <typename FramebufferMixedSamplesCombinationNVAllocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54853     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54854     template <typename FramebufferMixedSamplesCombinationNVAllocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = FramebufferMixedSamplesCombinationNVAllocator, typename std::enable_if<std::is_same<typename B::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type = 0>
54855     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV( FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54856 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54857 
54858 
54859     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54860     VULKAN_HPP_NODISCARD Result getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54861 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54862     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54863     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT>::type getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54864 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54865 
54866 
54867     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54868     VULKAN_HPP_NODISCARD Result getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54869 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54870     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54871     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54872     template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54873     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<StructureChain<X, Y, Z...>>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54874 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54875 
54876 
54877     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54878     VULKAN_HPP_NODISCARD Result getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54879 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54880     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54881     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR>::type getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54882 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54883 
54884 
54885     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54886     VULKAN_HPP_NODISCARD Result getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54887 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54888     template <typename SurfaceFormat2KHRAllocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54889     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54890     template <typename SurfaceFormat2KHRAllocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SurfaceFormat2KHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormat2KHR>::value, int>::type = 0>
54891     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54892 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54893 
54894 
54895     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54896     VULKAN_HPP_NODISCARD Result getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR* pSurfaceFormats, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54897 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54898     template <typename SurfaceFormatKHRAllocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54899     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54900     template <typename SurfaceFormatKHRAllocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SurfaceFormatKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormatKHR>::value, int>::type = 0>
54901     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54902 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54903 
54904 
54905 #ifdef VK_USE_PLATFORM_WIN32_KHR
54906     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54907     VULKAN_HPP_NODISCARD Result getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54908 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54909     template <typename PresentModeKHRAllocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54910     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54911     template <typename PresentModeKHRAllocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PresentModeKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type = 0>
54912     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54913 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54914 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
54915 
54916 
54917     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54918     VULKAN_HPP_NODISCARD Result getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54919 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54920     template <typename PresentModeKHRAllocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54921     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54922     template <typename PresentModeKHRAllocator = std::allocator<PresentModeKHR>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PresentModeKHRAllocator, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type = 0>
54923     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54924 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54925 
54926 
54927     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54928     VULKAN_HPP_NODISCARD Result getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::Bool32* pSupported, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54930     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54931     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Bool32>::type getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54932 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54933 
54934 
54935     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54936     VULKAN_HPP_NODISCARD Result getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54937 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54938     template <typename PhysicalDeviceToolPropertiesEXTAllocator = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54939     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator>>::type getToolPropertiesEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54940     template <typename PhysicalDeviceToolPropertiesEXTAllocator = std::allocator<PhysicalDeviceToolPropertiesEXT>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceToolPropertiesEXTAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolPropertiesEXT>::value, int>::type = 0>
54941     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator>>::type getToolPropertiesEXT( PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54942 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54943 
54944 
54945 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
54946     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54947     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54948 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54949     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54950     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54951 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54952 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
54953 
54954 
54955 #ifdef VK_USE_PLATFORM_WIN32_KHR
54956     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54957     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54958 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
54959 
54960 
54961 #ifdef VK_USE_PLATFORM_XCB_KHR
54962     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54963     Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54964 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54965     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54966     Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54967 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54968 #endif /*VK_USE_PLATFORM_XCB_KHR*/
54969 
54970 
54971 #ifdef VK_USE_PLATFORM_XLIB_KHR
54972     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54973     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54974 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54975     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54976     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54977 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54978 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
54979 
54980 
54981 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
54982     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54983     VULKAN_HPP_NODISCARD Result getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54984 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
54985     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54986     typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54987 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
54988   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54989   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
54990 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
54991 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
54992 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
54993 
54994 
54995 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
54996     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
54997     Result releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
54998 #else
54999     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
55000     typename ResultValueType<void>::type releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
55001 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
55002 
55003 
operator VkPhysicalDevice() const55004     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT
55005     {
55006       return m_physicalDevice;
55007     }
55008 
operator bool() const55009     explicit operator bool() const VULKAN_HPP_NOEXCEPT
55010     {
55011       return m_physicalDevice != VK_NULL_HANDLE;
55012     }
55013 
operator !() const55014     bool operator!() const VULKAN_HPP_NOEXCEPT
55015     {
55016       return m_physicalDevice == VK_NULL_HANDLE;
55017     }
55018 
55019   private:
55020     VkPhysicalDevice m_physicalDevice;
55021   };
55022   static_assert( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" );
55023 
55024   template <>
55025   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::ePhysicalDevice>
55026   {
55027     using type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
55028   };
55029 
55030   template <>
55031   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice>
55032   {
55033     using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
55034   };
55035 
55036 
55037   template <>
55038   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice>
55039   {
55040     using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice;
55041   };
55042 
55043 
55044   template <>
55045   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::PhysicalDevice>
55046   {
55047     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
55048   };
55049 
55050   struct DeviceGroupDeviceCreateInfo
55051   {
55052     static const bool allowDuplicate = false;
55053     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo;
55054 
55055 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55056     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo(uint32_t physicalDeviceCount_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ = {}) VULKAN_HPP_NOEXCEPT
55057     : physicalDeviceCount( physicalDeviceCount_ ), pPhysicalDevices( pPhysicalDevices_ )
55058     {}
55059 
55060     VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55061 
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55062     DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55063     {
55064       *this = rhs;
55065     }
55066 
55067 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55068     DeviceGroupDeviceCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ )
55069     : physicalDeviceCount( static_cast<uint32_t>( physicalDevices_.size() ) ), pPhysicalDevices( physicalDevices_.data() )
55070     {}
55071 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55072 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55073 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55074     DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55075     {
55076       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const *>( &rhs );
55077       return *this;
55078     }
55079 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55080     DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55081     {
55082       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupDeviceCreateInfo ) );
55083       return *this;
55084     }
55085 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55086     DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55087     {
55088       pNext = pNext_;
55089       return *this;
55090     }
55091 
setPhysicalDeviceCountVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55092     DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT
55093     {
55094       physicalDeviceCount = physicalDeviceCount_;
55095       return *this;
55096     }
55097 
setPPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55098     DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
55099     {
55100       pPhysicalDevices = pPhysicalDevices_;
55101       return *this;
55102     }
55103 
55104 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55105     DeviceGroupDeviceCreateInfo & setPhysicalDevices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ ) VULKAN_HPP_NOEXCEPT
55106     {
55107       physicalDeviceCount = static_cast<uint32_t>( physicalDevices_.size() );
55108       pPhysicalDevices = physicalDevices_.data();
55109       return *this;
55110     }
55111 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55112 
55113 
operator VkDeviceGroupDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55114     operator VkDeviceGroupDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
55115     {
55116       return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>( this );
55117     }
55118 
operator VkDeviceGroupDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55119     operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
55120     {
55121       return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>( this );
55122     }
55123 
55124 
55125 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55126     auto operator<=>( DeviceGroupDeviceCreateInfo const& ) const = default;
55127 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55128     bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55129     {
55130       return ( sType == rhs.sType )
55131           && ( pNext == rhs.pNext )
55132           && ( physicalDeviceCount == rhs.physicalDeviceCount )
55133           && ( pPhysicalDevices == rhs.pPhysicalDevices );
55134     }
55135 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo55136     bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55137     {
55138       return !operator==( rhs );
55139     }
55140 #endif
55141 
55142 
55143 
55144   public:
55145     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
55146     const void* pNext = {};
55147     uint32_t physicalDeviceCount = {};
55148     const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices = {};
55149 
55150   };
55151   static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" );
55152   static_assert( std::is_standard_layout<DeviceGroupDeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
55153 
55154   template <>
55155   struct CppType<StructureType, StructureType::eDeviceGroupDeviceCreateInfo>
55156   {
55157     using Type = DeviceGroupDeviceCreateInfo;
55158   };
55159   using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
55160 
55161   struct DeviceGroupPresentInfoKHR
55162   {
55163     static const bool allowDuplicate = false;
55164     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR;
55165 
55166 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55167     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR(uint32_t swapchainCount_ = {}, const uint32_t* pDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal) VULKAN_HPP_NOEXCEPT
55168     : swapchainCount( swapchainCount_ ), pDeviceMasks( pDeviceMasks_ ), mode( mode_ )
55169     {}
55170 
55171     VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55172 
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55173     DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55174     {
55175       *this = rhs;
55176     }
55177 
55178 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55179     DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal )
55180     : swapchainCount( static_cast<uint32_t>( deviceMasks_.size() ) ), pDeviceMasks( deviceMasks_.data() ), mode( mode_ )
55181     {}
55182 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55183 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55184 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55185     DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55186     {
55187       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const *>( &rhs );
55188       return *this;
55189     }
55190 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55191     DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55192     {
55193       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupPresentInfoKHR ) );
55194       return *this;
55195     }
55196 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55197     DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55198     {
55199       pNext = pNext_;
55200       return *this;
55201     }
55202 
setSwapchainCountVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55203     DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
55204     {
55205       swapchainCount = swapchainCount_;
55206       return *this;
55207     }
55208 
setPDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55209     DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
55210     {
55211       pDeviceMasks = pDeviceMasks_;
55212       return *this;
55213     }
55214 
55215 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55216     DeviceGroupPresentInfoKHR & setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT
55217     {
55218       swapchainCount = static_cast<uint32_t>( deviceMasks_.size() );
55219       pDeviceMasks = deviceMasks_.data();
55220       return *this;
55221     }
55222 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55223 
setModeVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55224     DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT
55225     {
55226       mode = mode_;
55227       return *this;
55228     }
55229 
55230 
operator VkDeviceGroupPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55231     operator VkDeviceGroupPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
55232     {
55233       return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>( this );
55234     }
55235 
operator VkDeviceGroupPresentInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55236     operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
55237     {
55238       return *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>( this );
55239     }
55240 
55241 
55242 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55243     auto operator<=>( DeviceGroupPresentInfoKHR const& ) const = default;
55244 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55245     bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55246     {
55247       return ( sType == rhs.sType )
55248           && ( pNext == rhs.pNext )
55249           && ( swapchainCount == rhs.swapchainCount )
55250           && ( pDeviceMasks == rhs.pDeviceMasks )
55251           && ( mode == rhs.mode );
55252     }
55253 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR55254     bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55255     {
55256       return !operator==( rhs );
55257     }
55258 #endif
55259 
55260 
55261 
55262   public:
55263     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
55264     const void* pNext = {};
55265     uint32_t swapchainCount = {};
55266     const uint32_t* pDeviceMasks = {};
55267     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal;
55268 
55269   };
55270   static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" );
55271   static_assert( std::is_standard_layout<DeviceGroupPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
55272 
55273   template <>
55274   struct CppType<StructureType, StructureType::eDeviceGroupPresentInfoKHR>
55275   {
55276     using Type = DeviceGroupPresentInfoKHR;
55277   };
55278 
55279   struct DeviceGroupRenderPassBeginInfo
55280   {
55281     static const bool allowDuplicate = false;
55282     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo;
55283 
55284 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55285     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo(uint32_t deviceMask_ = {}, uint32_t deviceRenderAreaCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ = {}) VULKAN_HPP_NOEXCEPT
55286     : deviceMask( deviceMask_ ), deviceRenderAreaCount( deviceRenderAreaCount_ ), pDeviceRenderAreas( pDeviceRenderAreas_ )
55287     {}
55288 
55289     VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55290 
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55291     DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55292     {
55293       *this = rhs;
55294     }
55295 
55296 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55297     DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ )
55298     : deviceMask( deviceMask_ ), deviceRenderAreaCount( static_cast<uint32_t>( deviceRenderAreas_.size() ) ), pDeviceRenderAreas( deviceRenderAreas_.data() )
55299     {}
55300 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55301 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55302 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55303     DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55304     {
55305       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const *>( &rhs );
55306       return *this;
55307     }
55308 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55309     DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55310     {
55311       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupRenderPassBeginInfo ) );
55312       return *this;
55313     }
55314 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55315     DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55316     {
55317       pNext = pNext_;
55318       return *this;
55319     }
55320 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55321     DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
55322     {
55323       deviceMask = deviceMask_;
55324       return *this;
55325     }
55326 
setDeviceRenderAreaCountVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55327     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
55328     {
55329       deviceRenderAreaCount = deviceRenderAreaCount_;
55330       return *this;
55331     }
55332 
setPDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55333     DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
55334     {
55335       pDeviceRenderAreas = pDeviceRenderAreas_;
55336       return *this;
55337     }
55338 
55339 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55340     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
55341     {
55342       deviceRenderAreaCount = static_cast<uint32_t>( deviceRenderAreas_.size() );
55343       pDeviceRenderAreas = deviceRenderAreas_.data();
55344       return *this;
55345     }
55346 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55347 
55348 
operator VkDeviceGroupRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55349     operator VkDeviceGroupRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT
55350     {
55351       return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>( this );
55352     }
55353 
operator VkDeviceGroupRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55354     operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
55355     {
55356       return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>( this );
55357     }
55358 
55359 
55360 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55361     auto operator<=>( DeviceGroupRenderPassBeginInfo const& ) const = default;
55362 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55363     bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55364     {
55365       return ( sType == rhs.sType )
55366           && ( pNext == rhs.pNext )
55367           && ( deviceMask == rhs.deviceMask )
55368           && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount )
55369           && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
55370     }
55371 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo55372     bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55373     {
55374       return !operator==( rhs );
55375     }
55376 #endif
55377 
55378 
55379 
55380   public:
55381     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
55382     const void* pNext = {};
55383     uint32_t deviceMask = {};
55384     uint32_t deviceRenderAreaCount = {};
55385     const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas = {};
55386 
55387   };
55388   static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" );
55389   static_assert( std::is_standard_layout<DeviceGroupRenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
55390 
55391   template <>
55392   struct CppType<StructureType, StructureType::eDeviceGroupRenderPassBeginInfo>
55393   {
55394     using Type = DeviceGroupRenderPassBeginInfo;
55395   };
55396   using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
55397 
55398   struct DeviceGroupSubmitInfo
55399   {
55400     static const bool allowDuplicate = false;
55401     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo;
55402 
55403 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55404     VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo(uint32_t waitSemaphoreCount_ = {}, const uint32_t* pWaitSemaphoreDeviceIndices_ = {}, uint32_t commandBufferCount_ = {}, const uint32_t* pCommandBufferDeviceMasks_ = {}, uint32_t signalSemaphoreCount_ = {}, const uint32_t* pSignalSemaphoreDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT
55405     : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ ), commandBufferCount( commandBufferCount_ ), pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
55406     {}
55407 
55408     VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55409 
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55410     DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55411     {
55412       *this = rhs;
55413     }
55414 
55415 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55416     DeviceGroupSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ = {} )
55417     : waitSemaphoreCount( static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() ) ), pWaitSemaphoreDeviceIndices( waitSemaphoreDeviceIndices_.data() ), commandBufferCount( static_cast<uint32_t>( commandBufferDeviceMasks_.size() ) ), pCommandBufferDeviceMasks( commandBufferDeviceMasks_.data() ), signalSemaphoreCount( static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() ) ), pSignalSemaphoreDeviceIndices( signalSemaphoreDeviceIndices_.data() )
55418     {}
55419 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55420 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55421 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55422     DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55423     {
55424       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const *>( &rhs );
55425       return *this;
55426     }
55427 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55428     DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
55429     {
55430       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupSubmitInfo ) );
55431       return *this;
55432     }
55433 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55434     DeviceGroupSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55435     {
55436       pNext = pNext_;
55437       return *this;
55438     }
55439 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55440     DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
55441     {
55442       waitSemaphoreCount = waitSemaphoreCount_;
55443       return *this;
55444     }
55445 
setPWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55446     DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
55447     {
55448       pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
55449       return *this;
55450     }
55451 
55452 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55453     DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
55454     {
55455       waitSemaphoreCount = static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() );
55456       pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data();
55457       return *this;
55458     }
55459 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55460 
setCommandBufferCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55461     DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
55462     {
55463       commandBufferCount = commandBufferCount_;
55464       return *this;
55465     }
55466 
setPCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55467     DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
55468     {
55469       pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
55470       return *this;
55471     }
55472 
55473 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55474     DeviceGroupSubmitInfo & setCommandBufferDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
55475     {
55476       commandBufferCount = static_cast<uint32_t>( commandBufferDeviceMasks_.size() );
55477       pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data();
55478       return *this;
55479     }
55480 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55481 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55482     DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
55483     {
55484       signalSemaphoreCount = signalSemaphoreCount_;
55485       return *this;
55486     }
55487 
setPSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55488     DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
55489     {
55490       pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
55491       return *this;
55492     }
55493 
55494 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55495     DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
55496     {
55497       signalSemaphoreCount = static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() );
55498       pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data();
55499       return *this;
55500     }
55501 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
55502 
55503 
operator VkDeviceGroupSubmitInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55504     operator VkDeviceGroupSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
55505     {
55506       return *reinterpret_cast<const VkDeviceGroupSubmitInfo*>( this );
55507     }
55508 
operator VkDeviceGroupSubmitInfo&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55509     operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
55510     {
55511       return *reinterpret_cast<VkDeviceGroupSubmitInfo*>( this );
55512     }
55513 
55514 
55515 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55516     auto operator<=>( DeviceGroupSubmitInfo const& ) const = default;
55517 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55518     bool operator==( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55519     {
55520       return ( sType == rhs.sType )
55521           && ( pNext == rhs.pNext )
55522           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
55523           && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices )
55524           && ( commandBufferCount == rhs.commandBufferCount )
55525           && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks )
55526           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
55527           && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
55528     }
55529 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo55530     bool operator!=( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
55531     {
55532       return !operator==( rhs );
55533     }
55534 #endif
55535 
55536 
55537 
55538   public:
55539     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo;
55540     const void* pNext = {};
55541     uint32_t waitSemaphoreCount = {};
55542     const uint32_t* pWaitSemaphoreDeviceIndices = {};
55543     uint32_t commandBufferCount = {};
55544     const uint32_t* pCommandBufferDeviceMasks = {};
55545     uint32_t signalSemaphoreCount = {};
55546     const uint32_t* pSignalSemaphoreDeviceIndices = {};
55547 
55548   };
55549   static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" );
55550   static_assert( std::is_standard_layout<DeviceGroupSubmitInfo>::value, "struct wrapper is not a standard layout!" );
55551 
55552   template <>
55553   struct CppType<StructureType, StructureType::eDeviceGroupSubmitInfo>
55554   {
55555     using Type = DeviceGroupSubmitInfo;
55556   };
55557   using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
55558 
55559   struct DeviceGroupSwapchainCreateInfoKHR
55560   {
55561     static const bool allowDuplicate = false;
55562     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
55563 
55564 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55565     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT
55566     : modes( modes_ )
55567     {}
55568 
55569     VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55570 
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55571     DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55572     {
55573       *this = rhs;
55574     }
55575 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55576 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55577     DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55578     {
55579       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const *>( &rhs );
55580       return *this;
55581     }
55582 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55583     DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
55584     {
55585       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceGroupSwapchainCreateInfoKHR ) );
55586       return *this;
55587     }
55588 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55589     DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55590     {
55591       pNext = pNext_;
55592       return *this;
55593     }
55594 
setModesVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55595     DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT
55596     {
55597       modes = modes_;
55598       return *this;
55599     }
55600 
55601 
operator VkDeviceGroupSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55602     operator VkDeviceGroupSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
55603     {
55604       return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>( this );
55605     }
55606 
operator VkDeviceGroupSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55607     operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
55608     {
55609       return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>( this );
55610     }
55611 
55612 
55613 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55614     auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const& ) const = default;
55615 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55616     bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55617     {
55618       return ( sType == rhs.sType )
55619           && ( pNext == rhs.pNext )
55620           && ( modes == rhs.modes );
55621     }
55622 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR55623     bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
55624     {
55625       return !operator==( rhs );
55626     }
55627 #endif
55628 
55629 
55630 
55631   public:
55632     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
55633     const void* pNext = {};
55634     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
55635 
55636   };
55637   static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
55638   static_assert( std::is_standard_layout<DeviceGroupSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
55639 
55640   template <>
55641   struct CppType<StructureType, StructureType::eDeviceGroupSwapchainCreateInfoKHR>
55642   {
55643     using Type = DeviceGroupSwapchainCreateInfoKHR;
55644   };
55645 
55646   struct DeviceMemoryOverallocationCreateInfoAMD
55647   {
55648     static const bool allowDuplicate = false;
55649     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
55650 
55651 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55652     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault) VULKAN_HPP_NOEXCEPT
55653     : overallocationBehavior( overallocationBehavior_ )
55654     {}
55655 
55656     VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55657 
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55658     DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55659     {
55660       *this = rhs;
55661     }
55662 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55663 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55664     DeviceMemoryOverallocationCreateInfoAMD & operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55665     {
55666       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs );
55667       return *this;
55668     }
55669 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55670     DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
55671     {
55672       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceMemoryOverallocationCreateInfoAMD ) );
55673       return *this;
55674     }
55675 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55676     DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55677     {
55678       pNext = pNext_;
55679       return *this;
55680     }
55681 
setOverallocationBehaviorVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55682     DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
55683     {
55684       overallocationBehavior = overallocationBehavior_;
55685       return *this;
55686     }
55687 
55688 
operator VkDeviceMemoryOverallocationCreateInfoAMD const&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55689     operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
55690     {
55691       return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
55692     }
55693 
operator VkDeviceMemoryOverallocationCreateInfoAMD&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55694     operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
55695     {
55696       return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
55697     }
55698 
55699 
55700 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55701     auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const& ) const = default;
55702 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55703     bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
55704     {
55705       return ( sType == rhs.sType )
55706           && ( pNext == rhs.pNext )
55707           && ( overallocationBehavior == rhs.overallocationBehavior );
55708     }
55709 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD55710     bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
55711     {
55712       return !operator==( rhs );
55713     }
55714 #endif
55715 
55716 
55717 
55718   public:
55719     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
55720     const void* pNext = {};
55721     VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault;
55722 
55723   };
55724   static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" );
55725   static_assert( std::is_standard_layout<DeviceMemoryOverallocationCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
55726 
55727   template <>
55728   struct CppType<StructureType, StructureType::eDeviceMemoryOverallocationCreateInfoAMD>
55729   {
55730     using Type = DeviceMemoryOverallocationCreateInfoAMD;
55731   };
55732 
55733   struct DeviceMemoryReportCallbackDataEXT
55734   {
55735     static const bool allowDuplicate = false;
55736     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryReportCallbackDataEXT;
55737 
55738 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55739     VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type_ = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate, uint64_t memoryObjectId_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT
55740     : flags( flags_ ), type( type_ ), memoryObjectId( memoryObjectId_ ), size( size_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), heapIndex( heapIndex_ )
55741     {}
55742 
55743     VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55744 
DeviceMemoryReportCallbackDataEXTVULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55745     DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55746     {
55747       *this = rhs;
55748     }
55749 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55750 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55751     DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55752     {
55753       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT const *>( &rhs );
55754       return *this;
55755     }
55756 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55757     DeviceMemoryReportCallbackDataEXT & operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55758     {
55759       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceMemoryReportCallbackDataEXT ) );
55760       return *this;
55761     }
55762 
55763 
operator VkDeviceMemoryReportCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55764     operator VkDeviceMemoryReportCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT
55765     {
55766       return *reinterpret_cast<const VkDeviceMemoryReportCallbackDataEXT*>( this );
55767     }
55768 
operator VkDeviceMemoryReportCallbackDataEXT&VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55769     operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
55770     {
55771       return *reinterpret_cast<VkDeviceMemoryReportCallbackDataEXT*>( this );
55772     }
55773 
55774 
55775 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55776     auto operator<=>( DeviceMemoryReportCallbackDataEXT const& ) const = default;
55777 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55778     bool operator==( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55779     {
55780       return ( sType == rhs.sType )
55781           && ( pNext == rhs.pNext )
55782           && ( flags == rhs.flags )
55783           && ( type == rhs.type )
55784           && ( memoryObjectId == rhs.memoryObjectId )
55785           && ( size == rhs.size )
55786           && ( objectType == rhs.objectType )
55787           && ( objectHandle == rhs.objectHandle )
55788           && ( heapIndex == rhs.heapIndex );
55789     }
55790 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT55791     bool operator!=( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55792     {
55793       return !operator==( rhs );
55794     }
55795 #endif
55796 
55797 
55798 
55799   public:
55800     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT;
55801     const void* pNext = {};
55802     VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
55803     VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate;
55804     uint64_t memoryObjectId = {};
55805     VULKAN_HPP_NAMESPACE::DeviceSize size = {};
55806     VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
55807     uint64_t objectHandle = {};
55808     uint32_t heapIndex = {};
55809 
55810   };
55811   static_assert( sizeof( DeviceMemoryReportCallbackDataEXT ) == sizeof( VkDeviceMemoryReportCallbackDataEXT ), "struct and wrapper have different size!" );
55812   static_assert( std::is_standard_layout<DeviceMemoryReportCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
55813 
55814   template <>
55815   struct CppType<StructureType, StructureType::eDeviceMemoryReportCallbackDataEXT>
55816   {
55817     using Type = DeviceMemoryReportCallbackDataEXT;
55818   };
55819 
55820   struct DevicePrivateDataCreateInfoEXT
55821   {
55822     static const bool allowDuplicate = true;
55823     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfoEXT;
55824 
55825 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55826     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT(uint32_t privateDataSlotRequestCount_ = {}) VULKAN_HPP_NOEXCEPT
55827     : privateDataSlotRequestCount( privateDataSlotRequestCount_ )
55828     {}
55829 
55830     VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55831 
DevicePrivateDataCreateInfoEXTVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55832     DevicePrivateDataCreateInfoEXT( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55833     {
55834       *this = rhs;
55835     }
55836 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55837 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55838     DevicePrivateDataCreateInfoEXT & operator=( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55839     {
55840       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT const *>( &rhs );
55841       return *this;
55842     }
55843 
operator =VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55844     DevicePrivateDataCreateInfoEXT & operator=( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55845     {
55846       memcpy( static_cast<void *>( this ), &rhs, sizeof( DevicePrivateDataCreateInfoEXT ) );
55847       return *this;
55848     }
55849 
setPNextVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55850     DevicePrivateDataCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55851     {
55852       pNext = pNext_;
55853       return *this;
55854     }
55855 
setPrivateDataSlotRequestCountVULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55856     DevicePrivateDataCreateInfoEXT & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT
55857     {
55858       privateDataSlotRequestCount = privateDataSlotRequestCount_;
55859       return *this;
55860     }
55861 
55862 
operator VkDevicePrivateDataCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55863     operator VkDevicePrivateDataCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
55864     {
55865       return *reinterpret_cast<const VkDevicePrivateDataCreateInfoEXT*>( this );
55866     }
55867 
operator VkDevicePrivateDataCreateInfoEXT&VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55868     operator VkDevicePrivateDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
55869     {
55870       return *reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>( this );
55871     }
55872 
55873 
55874 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55875     auto operator<=>( DevicePrivateDataCreateInfoEXT const& ) const = default;
55876 #else
operator ==VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55877     bool operator==( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55878     {
55879       return ( sType == rhs.sType )
55880           && ( pNext == rhs.pNext )
55881           && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount );
55882     }
55883 
operator !=VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfoEXT55884     bool operator!=( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55885     {
55886       return !operator==( rhs );
55887     }
55888 #endif
55889 
55890 
55891 
55892   public:
55893     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfoEXT;
55894     const void* pNext = {};
55895     uint32_t privateDataSlotRequestCount = {};
55896 
55897   };
55898   static_assert( sizeof( DevicePrivateDataCreateInfoEXT ) == sizeof( VkDevicePrivateDataCreateInfoEXT ), "struct and wrapper have different size!" );
55899   static_assert( std::is_standard_layout<DevicePrivateDataCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
55900 
55901   template <>
55902   struct CppType<StructureType, StructureType::eDevicePrivateDataCreateInfoEXT>
55903   {
55904     using Type = DevicePrivateDataCreateInfoEXT;
55905   };
55906 
55907   struct DeviceQueueGlobalPriorityCreateInfoEXT
55908   {
55909     static const bool allowDuplicate = false;
55910     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
55911 
55912 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55913     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT(VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow) VULKAN_HPP_NOEXCEPT
55914     : globalPriority( globalPriority_ )
55915     {}
55916 
55917     VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
55918 
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55919     DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55920     {
55921       *this = rhs;
55922     }
55923 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
55924 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55925     DeviceQueueGlobalPriorityCreateInfoEXT & operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55926     {
55927       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT const *>( &rhs );
55928       return *this;
55929     }
55930 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55931     DeviceQueueGlobalPriorityCreateInfoEXT & operator=( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
55932     {
55933       memcpy( static_cast<void *>( this ), &rhs, sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) );
55934       return *this;
55935     }
55936 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55937     DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
55938     {
55939       pNext = pNext_;
55940       return *this;
55941     }
55942 
setGlobalPriorityVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55943     DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ ) VULKAN_HPP_NOEXCEPT
55944     {
55945       globalPriority = globalPriority_;
55946       return *this;
55947     }
55948 
55949 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55950     operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
55951     {
55952       return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
55953     }
55954 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55955     operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
55956     {
55957       return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
55958     }
55959 
55960 
55961 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
55962     auto operator<=>( DeviceQueueGlobalPriorityCreateInfoEXT const& ) const = default;
55963 #else
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55964     bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55965     {
55966       return ( sType == rhs.sType )
55967           && ( pNext == rhs.pNext )
55968           && ( globalPriority == rhs.globalPriority );
55969     }
55970 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT55971     bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
55972     {
55973       return !operator==( rhs );
55974     }
55975 #endif
55976 
55977 
55978 
55979   public:
55980     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
55981     const void* pNext = {};
55982     VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow;
55983 
55984   };
55985   static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" );
55986   static_assert( std::is_standard_layout<DeviceQueueGlobalPriorityCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
55987 
55988   template <>
55989   struct CppType<StructureType, StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT>
55990   {
55991     using Type = DeviceQueueGlobalPriorityCreateInfoEXT;
55992   };
55993 
55994 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
55995   struct DirectFBSurfaceCreateInfoEXT
55996   {
55997     static const bool allowDuplicate = false;
55998     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT;
55999 
56000 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56001     VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {}, IDirectFB* dfb_ = {}, IDirectFBSurface* surface_ = {}) VULKAN_HPP_NOEXCEPT
56002     : flags( flags_ ), dfb( dfb_ ), surface( surface_ )
56003     {}
56004 
56005     VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56006 
DirectFBSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56007     DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56008     {
56009       *this = rhs;
56010     }
56011 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56012 
operator =VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56013     DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56014     {
56015       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const *>( &rhs );
56016       return *this;
56017     }
56018 
operator =VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56019     DirectFBSurfaceCreateInfoEXT & operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56020     {
56021       memcpy( static_cast<void *>( this ), &rhs, sizeof( DirectFBSurfaceCreateInfoEXT ) );
56022       return *this;
56023     }
56024 
setPNextVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56025     DirectFBSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56026     {
56027       pNext = pNext_;
56028       return *this;
56029     }
56030 
setFlagsVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56031     DirectFBSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
56032     {
56033       flags = flags_;
56034       return *this;
56035     }
56036 
setDfbVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56037     DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB* dfb_ ) VULKAN_HPP_NOEXCEPT
56038     {
56039       dfb = dfb_;
56040       return *this;
56041     }
56042 
setSurfaceVULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56043     DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface* surface_ ) VULKAN_HPP_NOEXCEPT
56044     {
56045       surface = surface_;
56046       return *this;
56047     }
56048 
56049 
operator VkDirectFBSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56050     operator VkDirectFBSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
56051     {
56052       return *reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT*>( this );
56053     }
56054 
operator VkDirectFBSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56055     operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
56056     {
56057       return *reinterpret_cast<VkDirectFBSurfaceCreateInfoEXT*>( this );
56058     }
56059 
56060 
56061 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56062     auto operator<=>( DirectFBSurfaceCreateInfoEXT const& ) const = default;
56063 #else
operator ==VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56064     bool operator==( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56065     {
56066       return ( sType == rhs.sType )
56067           && ( pNext == rhs.pNext )
56068           && ( flags == rhs.flags )
56069           && ( dfb == rhs.dfb )
56070           && ( surface == rhs.surface );
56071     }
56072 
operator !=VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT56073     bool operator!=( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56074     {
56075       return !operator==( rhs );
56076     }
56077 #endif
56078 
56079 
56080 
56081   public:
56082     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT;
56083     const void* pNext = {};
56084     VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {};
56085     IDirectFB* dfb = {};
56086     IDirectFBSurface* surface = {};
56087 
56088   };
56089   static_assert( sizeof( DirectFBSurfaceCreateInfoEXT ) == sizeof( VkDirectFBSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
56090   static_assert( std::is_standard_layout<DirectFBSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
56091 
56092   template <>
56093   struct CppType<StructureType, StructureType::eDirectfbSurfaceCreateInfoEXT>
56094   {
56095     using Type = DirectFBSurfaceCreateInfoEXT;
56096   };
56097 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
56098 
56099   struct DispatchIndirectCommand
56100   {
56101 
56102 
56103 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56104     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand(uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {}) VULKAN_HPP_NOEXCEPT
56105     : x( x_ ), y( y_ ), z( z_ )
56106     {}
56107 
56108     VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56109 
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56110     DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56111     {
56112       *this = rhs;
56113     }
56114 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56115 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56116     DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56117     {
56118       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const *>( &rhs );
56119       return *this;
56120     }
56121 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56122     DispatchIndirectCommand & operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56123     {
56124       memcpy( static_cast<void *>( this ), &rhs, sizeof( DispatchIndirectCommand ) );
56125       return *this;
56126     }
56127 
setXVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56128     DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT
56129     {
56130       x = x_;
56131       return *this;
56132     }
56133 
setYVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56134     DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT
56135     {
56136       y = y_;
56137       return *this;
56138     }
56139 
setZVULKAN_HPP_NAMESPACE::DispatchIndirectCommand56140     DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT
56141     {
56142       z = z_;
56143       return *this;
56144     }
56145 
56146 
operator VkDispatchIndirectCommand const&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56147     operator VkDispatchIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
56148     {
56149       return *reinterpret_cast<const VkDispatchIndirectCommand*>( this );
56150     }
56151 
operator VkDispatchIndirectCommand&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56152     operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT
56153     {
56154       return *reinterpret_cast<VkDispatchIndirectCommand*>( this );
56155     }
56156 
56157 
56158 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56159     auto operator<=>( DispatchIndirectCommand const& ) const = default;
56160 #else
operator ==VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56161     bool operator==( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56162     {
56163       return ( x == rhs.x )
56164           && ( y == rhs.y )
56165           && ( z == rhs.z );
56166     }
56167 
operator !=VULKAN_HPP_NAMESPACE::DispatchIndirectCommand56168     bool operator!=( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56169     {
56170       return !operator==( rhs );
56171     }
56172 #endif
56173 
56174 
56175 
56176   public:
56177     uint32_t x = {};
56178     uint32_t y = {};
56179     uint32_t z = {};
56180 
56181   };
56182   static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" );
56183   static_assert( std::is_standard_layout<DispatchIndirectCommand>::value, "struct wrapper is not a standard layout!" );
56184 
56185   struct DisplayNativeHdrSurfaceCapabilitiesAMD
56186   {
56187     static const bool allowDuplicate = false;
56188     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
56189 
56190 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56191     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {}) VULKAN_HPP_NOEXCEPT
56192     : localDimmingSupport( localDimmingSupport_ )
56193     {}
56194 
56195     VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56196 
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56197     DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56198     {
56199       *this = rhs;
56200     }
56201 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56202 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56203     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56204     {
56205       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs );
56206       return *this;
56207     }
56208 
operator =VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56209     DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
56210     {
56211       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) );
56212       return *this;
56213     }
56214 
56215 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56216     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const VULKAN_HPP_NOEXCEPT
56217     {
56218       return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
56219     }
56220 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56221     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT
56222     {
56223       return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
56224     }
56225 
56226 
56227 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56228     auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const& ) const = default;
56229 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56230     bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
56231     {
56232       return ( sType == rhs.sType )
56233           && ( pNext == rhs.pNext )
56234           && ( localDimmingSupport == rhs.localDimmingSupport );
56235     }
56236 
operator !=VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD56237     bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
56238     {
56239       return !operator==( rhs );
56240     }
56241 #endif
56242 
56243 
56244 
56245   public:
56246     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
56247     void* pNext = {};
56248     VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {};
56249 
56250   };
56251   static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" );
56252   static_assert( std::is_standard_layout<DisplayNativeHdrSurfaceCapabilitiesAMD>::value, "struct wrapper is not a standard layout!" );
56253 
56254   template <>
56255   struct CppType<StructureType, StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD>
56256   {
56257     using Type = DisplayNativeHdrSurfaceCapabilitiesAMD;
56258   };
56259 
56260   struct DisplayPresentInfoKHR
56261   {
56262     static const bool allowDuplicate = false;
56263     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR;
56264 
56265 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56266     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR(VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {}, VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {}) VULKAN_HPP_NOEXCEPT
56267     : srcRect( srcRect_ ), dstRect( dstRect_ ), persistent( persistent_ )
56268     {}
56269 
56270     VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56271 
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56272     DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56273     {
56274       *this = rhs;
56275     }
56276 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56277 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56278     DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56279     {
56280       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const *>( &rhs );
56281       return *this;
56282     }
56283 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56284     DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56285     {
56286       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplayPresentInfoKHR ) );
56287       return *this;
56288     }
56289 
setPNextVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56290     DisplayPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56291     {
56292       pNext = pNext_;
56293       return *this;
56294     }
56295 
setSrcRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56296     DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT
56297     {
56298       srcRect = srcRect_;
56299       return *this;
56300     }
56301 
setDstRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56302     DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT
56303     {
56304       dstRect = dstRect_;
56305       return *this;
56306     }
56307 
setPersistentVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56308     DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT
56309     {
56310       persistent = persistent_;
56311       return *this;
56312     }
56313 
56314 
operator VkDisplayPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56315     operator VkDisplayPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56316     {
56317       return *reinterpret_cast<const VkDisplayPresentInfoKHR*>( this );
56318     }
56319 
operator VkDisplayPresentInfoKHR&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56320     operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
56321     {
56322       return *reinterpret_cast<VkDisplayPresentInfoKHR*>( this );
56323     }
56324 
56325 
56326 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56327     auto operator<=>( DisplayPresentInfoKHR const& ) const = default;
56328 #else
operator ==VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56329     bool operator==( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56330     {
56331       return ( sType == rhs.sType )
56332           && ( pNext == rhs.pNext )
56333           && ( srcRect == rhs.srcRect )
56334           && ( dstRect == rhs.dstRect )
56335           && ( persistent == rhs.persistent );
56336     }
56337 
operator !=VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR56338     bool operator!=( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56339     {
56340       return !operator==( rhs );
56341     }
56342 #endif
56343 
56344 
56345 
56346   public:
56347     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR;
56348     const void* pNext = {};
56349     VULKAN_HPP_NAMESPACE::Rect2D srcRect = {};
56350     VULKAN_HPP_NAMESPACE::Rect2D dstRect = {};
56351     VULKAN_HPP_NAMESPACE::Bool32 persistent = {};
56352 
56353   };
56354   static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" );
56355   static_assert( std::is_standard_layout<DisplayPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
56356 
56357   template <>
56358   struct CppType<StructureType, StructureType::eDisplayPresentInfoKHR>
56359   {
56360     using Type = DisplayPresentInfoKHR;
56361   };
56362 
56363   struct DisplaySurfaceCreateInfoKHR
56364   {
56365     static const bool allowDuplicate = false;
56366     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR;
56367 
56368 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56369     VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, uint32_t planeIndex_ = {}, uint32_t planeStackIndex_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, float globalAlpha_ = {}, VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT
56370     : flags( flags_ ), displayMode( displayMode_ ), planeIndex( planeIndex_ ), planeStackIndex( planeStackIndex_ ), transform( transform_ ), globalAlpha( globalAlpha_ ), alphaMode( alphaMode_ ), imageExtent( imageExtent_ )
56371     {}
56372 
56373     VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56374 
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56375     DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56376     {
56377       *this = rhs;
56378     }
56379 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56380 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56381     DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56382     {
56383       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const *>( &rhs );
56384       return *this;
56385     }
56386 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56387     DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
56388     {
56389       memcpy( static_cast<void *>( this ), &rhs, sizeof( DisplaySurfaceCreateInfoKHR ) );
56390       return *this;
56391     }
56392 
setPNextVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56393     DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56394     {
56395       pNext = pNext_;
56396       return *this;
56397     }
56398 
setFlagsVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56399     DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
56400     {
56401       flags = flags_;
56402       return *this;
56403     }
56404 
setDisplayModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56405     DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT
56406     {
56407       displayMode = displayMode_;
56408       return *this;
56409     }
56410 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56411     DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
56412     {
56413       planeIndex = planeIndex_;
56414       return *this;
56415     }
56416 
setPlaneStackIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56417     DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT
56418     {
56419       planeStackIndex = planeStackIndex_;
56420       return *this;
56421     }
56422 
setTransformVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56423     DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
56424     {
56425       transform = transform_;
56426       return *this;
56427     }
56428 
setGlobalAlphaVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56429     DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT
56430     {
56431       globalAlpha = globalAlpha_;
56432       return *this;
56433     }
56434 
setAlphaModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56435     DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT
56436     {
56437       alphaMode = alphaMode_;
56438       return *this;
56439     }
56440 
setImageExtentVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56441     DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
56442     {
56443       imageExtent = imageExtent_;
56444       return *this;
56445     }
56446 
56447 
operator VkDisplaySurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56448     operator VkDisplaySurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
56449     {
56450       return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( this );
56451     }
56452 
operator VkDisplaySurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56453     operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
56454     {
56455       return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>( this );
56456     }
56457 
56458 
56459 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56460     auto operator<=>( DisplaySurfaceCreateInfoKHR const& ) const = default;
56461 #else
operator ==VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56462     bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56463     {
56464       return ( sType == rhs.sType )
56465           && ( pNext == rhs.pNext )
56466           && ( flags == rhs.flags )
56467           && ( displayMode == rhs.displayMode )
56468           && ( planeIndex == rhs.planeIndex )
56469           && ( planeStackIndex == rhs.planeStackIndex )
56470           && ( transform == rhs.transform )
56471           && ( globalAlpha == rhs.globalAlpha )
56472           && ( alphaMode == rhs.alphaMode )
56473           && ( imageExtent == rhs.imageExtent );
56474     }
56475 
operator !=VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR56476     bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
56477     {
56478       return !operator==( rhs );
56479     }
56480 #endif
56481 
56482 
56483 
56484   public:
56485     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
56486     const void* pNext = {};
56487     VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {};
56488     VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
56489     uint32_t planeIndex = {};
56490     uint32_t planeStackIndex = {};
56491     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
56492     float globalAlpha = {};
56493     VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque;
56494     VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
56495 
56496   };
56497   static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
56498   static_assert( std::is_standard_layout<DisplaySurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
56499 
56500   template <>
56501   struct CppType<StructureType, StructureType::eDisplaySurfaceCreateInfoKHR>
56502   {
56503     using Type = DisplaySurfaceCreateInfoKHR;
56504   };
56505 
56506   struct DrawIndexedIndirectCommand
56507   {
56508 
56509 
56510 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56511     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand(uint32_t indexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstIndex_ = {}, int32_t vertexOffset_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
56512     : indexCount( indexCount_ ), instanceCount( instanceCount_ ), firstIndex( firstIndex_ ), vertexOffset( vertexOffset_ ), firstInstance( firstInstance_ )
56513     {}
56514 
56515     VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56516 
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56517     DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56518     {
56519       *this = rhs;
56520     }
56521 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56522 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56523     DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56524     {
56525       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const *>( &rhs );
56526       return *this;
56527     }
56528 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56529     DrawIndexedIndirectCommand & operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56530     {
56531       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrawIndexedIndirectCommand ) );
56532       return *this;
56533     }
56534 
setIndexCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56535     DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
56536     {
56537       indexCount = indexCount_;
56538       return *this;
56539     }
56540 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56541     DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
56542     {
56543       instanceCount = instanceCount_;
56544       return *this;
56545     }
56546 
setFirstIndexVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56547     DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
56548     {
56549       firstIndex = firstIndex_;
56550       return *this;
56551     }
56552 
setVertexOffsetVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56553     DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
56554     {
56555       vertexOffset = vertexOffset_;
56556       return *this;
56557     }
56558 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56559     DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
56560     {
56561       firstInstance = firstInstance_;
56562       return *this;
56563     }
56564 
56565 
operator VkDrawIndexedIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56566     operator VkDrawIndexedIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
56567     {
56568       return *reinterpret_cast<const VkDrawIndexedIndirectCommand*>( this );
56569     }
56570 
operator VkDrawIndexedIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56571     operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT
56572     {
56573       return *reinterpret_cast<VkDrawIndexedIndirectCommand*>( this );
56574     }
56575 
56576 
56577 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56578     auto operator<=>( DrawIndexedIndirectCommand const& ) const = default;
56579 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56580     bool operator==( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56581     {
56582       return ( indexCount == rhs.indexCount )
56583           && ( instanceCount == rhs.instanceCount )
56584           && ( firstIndex == rhs.firstIndex )
56585           && ( vertexOffset == rhs.vertexOffset )
56586           && ( firstInstance == rhs.firstInstance );
56587     }
56588 
operator !=VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand56589     bool operator!=( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56590     {
56591       return !operator==( rhs );
56592     }
56593 #endif
56594 
56595 
56596 
56597   public:
56598     uint32_t indexCount = {};
56599     uint32_t instanceCount = {};
56600     uint32_t firstIndex = {};
56601     int32_t vertexOffset = {};
56602     uint32_t firstInstance = {};
56603 
56604   };
56605   static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" );
56606   static_assert( std::is_standard_layout<DrawIndexedIndirectCommand>::value, "struct wrapper is not a standard layout!" );
56607 
56608   struct DrawIndirectCommand
56609   {
56610 
56611 
56612 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand56613     VULKAN_HPP_CONSTEXPR DrawIndirectCommand(uint32_t vertexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstVertex_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT
56614     : vertexCount( vertexCount_ ), instanceCount( instanceCount_ ), firstVertex( firstVertex_ ), firstInstance( firstInstance_ )
56615     {}
56616 
56617     VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56618 
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand56619     DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56620     {
56621       *this = rhs;
56622     }
56623 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56624 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand56625     DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56626     {
56627       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndirectCommand const *>( &rhs );
56628       return *this;
56629     }
56630 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand56631     DrawIndirectCommand & operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
56632     {
56633       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrawIndirectCommand ) );
56634       return *this;
56635     }
56636 
setVertexCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand56637     DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
56638     {
56639       vertexCount = vertexCount_;
56640       return *this;
56641     }
56642 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand56643     DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
56644     {
56645       instanceCount = instanceCount_;
56646       return *this;
56647     }
56648 
setFirstVertexVULKAN_HPP_NAMESPACE::DrawIndirectCommand56649     DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
56650     {
56651       firstVertex = firstVertex_;
56652       return *this;
56653     }
56654 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndirectCommand56655     DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
56656     {
56657       firstInstance = firstInstance_;
56658       return *this;
56659     }
56660 
56661 
operator VkDrawIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndirectCommand56662     operator VkDrawIndirectCommand const&() const VULKAN_HPP_NOEXCEPT
56663     {
56664       return *reinterpret_cast<const VkDrawIndirectCommand*>( this );
56665     }
56666 
operator VkDrawIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndirectCommand56667     operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT
56668     {
56669       return *reinterpret_cast<VkDrawIndirectCommand*>( this );
56670     }
56671 
56672 
56673 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56674     auto operator<=>( DrawIndirectCommand const& ) const = default;
56675 #else
operator ==VULKAN_HPP_NAMESPACE::DrawIndirectCommand56676     bool operator==( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56677     {
56678       return ( vertexCount == rhs.vertexCount )
56679           && ( instanceCount == rhs.instanceCount )
56680           && ( firstVertex == rhs.firstVertex )
56681           && ( firstInstance == rhs.firstInstance );
56682     }
56683 
operator !=VULKAN_HPP_NAMESPACE::DrawIndirectCommand56684     bool operator!=( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT
56685     {
56686       return !operator==( rhs );
56687     }
56688 #endif
56689 
56690 
56691 
56692   public:
56693     uint32_t vertexCount = {};
56694     uint32_t instanceCount = {};
56695     uint32_t firstVertex = {};
56696     uint32_t firstInstance = {};
56697 
56698   };
56699   static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" );
56700   static_assert( std::is_standard_layout<DrawIndirectCommand>::value, "struct wrapper is not a standard layout!" );
56701 
56702   struct DrawMeshTasksIndirectCommandNV
56703   {
56704 
56705 
56706 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56707     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV(uint32_t taskCount_ = {}, uint32_t firstTask_ = {}) VULKAN_HPP_NOEXCEPT
56708     : taskCount( taskCount_ ), firstTask( firstTask_ )
56709     {}
56710 
56711     VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56712 
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56713     DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
56714     {
56715       *this = rhs;
56716     }
56717 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56718 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56719     DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
56720     {
56721       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const *>( &rhs );
56722       return *this;
56723     }
56724 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56725     DrawMeshTasksIndirectCommandNV & operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
56726     {
56727       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrawMeshTasksIndirectCommandNV ) );
56728       return *this;
56729     }
56730 
setTaskCountVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56731     DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT
56732     {
56733       taskCount = taskCount_;
56734       return *this;
56735     }
56736 
setFirstTaskVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56737     DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT
56738     {
56739       firstTask = firstTask_;
56740       return *this;
56741     }
56742 
56743 
operator VkDrawMeshTasksIndirectCommandNV const&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56744     operator VkDrawMeshTasksIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
56745     {
56746       return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV*>( this );
56747     }
56748 
operator VkDrawMeshTasksIndirectCommandNV&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56749     operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
56750     {
56751       return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>( this );
56752     }
56753 
56754 
56755 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56756     auto operator<=>( DrawMeshTasksIndirectCommandNV const& ) const = default;
56757 #else
operator ==VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56758     bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56759     {
56760       return ( taskCount == rhs.taskCount )
56761           && ( firstTask == rhs.firstTask );
56762     }
56763 
operator !=VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV56764     bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
56765     {
56766       return !operator==( rhs );
56767     }
56768 #endif
56769 
56770 
56771 
56772   public:
56773     uint32_t taskCount = {};
56774     uint32_t firstTask = {};
56775 
56776   };
56777   static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" );
56778   static_assert( std::is_standard_layout<DrawMeshTasksIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
56779 
56780   struct DrmFormatModifierPropertiesEXT
56781   {
56782 
56783 
56784 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56785     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {}) VULKAN_HPP_NOEXCEPT
56786     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
56787     {}
56788 
56789     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56790 
DrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56791     DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56792     {
56793       *this = rhs;
56794     }
56795 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56796 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56797     DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56798     {
56799       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const *>( &rhs );
56800       return *this;
56801     }
56802 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56803     DrmFormatModifierPropertiesEXT & operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56804     {
56805       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrmFormatModifierPropertiesEXT ) );
56806       return *this;
56807     }
56808 
56809 
operator VkDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56810     operator VkDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
56811     {
56812       return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT*>( this );
56813     }
56814 
operator VkDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56815     operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
56816     {
56817       return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT*>( this );
56818     }
56819 
56820 
56821 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56822     auto operator<=>( DrmFormatModifierPropertiesEXT const& ) const = default;
56823 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56824     bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56825     {
56826       return ( drmFormatModifier == rhs.drmFormatModifier )
56827           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
56828           && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
56829     }
56830 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT56831     bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56832     {
56833       return !operator==( rhs );
56834     }
56835 #endif
56836 
56837 
56838 
56839   public:
56840     uint64_t drmFormatModifier = {};
56841     uint32_t drmFormatModifierPlaneCount = {};
56842     VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {};
56843 
56844   };
56845   static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
56846   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
56847 
56848   struct DrmFormatModifierPropertiesListEXT
56849   {
56850     static const bool allowDuplicate = false;
56851     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT;
56852 
56853 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56854     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT(uint32_t drmFormatModifierCount_ = {}, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties_ = {}) VULKAN_HPP_NOEXCEPT
56855     : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
56856     {}
56857 
56858     VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56859 
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56860     DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56861     {
56862       *this = rhs;
56863     }
56864 
56865 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56866     DrmFormatModifierPropertiesListEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT> const & drmFormatModifierProperties_ )
56867     : drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) ), pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
56868     {}
56869 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
56870 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56871 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56872     DrmFormatModifierPropertiesListEXT & operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56873     {
56874       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const *>( &rhs );
56875       return *this;
56876     }
56877 
operator =VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56878     DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
56879     {
56880       memcpy( static_cast<void *>( this ), &rhs, sizeof( DrmFormatModifierPropertiesListEXT ) );
56881       return *this;
56882     }
56883 
56884 
operator VkDrmFormatModifierPropertiesListEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56885     operator VkDrmFormatModifierPropertiesListEXT const&() const VULKAN_HPP_NOEXCEPT
56886     {
56887       return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>( this );
56888     }
56889 
operator VkDrmFormatModifierPropertiesListEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56890     operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT
56891     {
56892       return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>( this );
56893     }
56894 
56895 
56896 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56897     auto operator<=>( DrmFormatModifierPropertiesListEXT const& ) const = default;
56898 #else
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56899     bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56900     {
56901       return ( sType == rhs.sType )
56902           && ( pNext == rhs.pNext )
56903           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
56904           && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
56905     }
56906 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT56907     bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
56908     {
56909       return !operator==( rhs );
56910     }
56911 #endif
56912 
56913 
56914 
56915   public:
56916     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
56917     void* pNext = {};
56918     uint32_t drmFormatModifierCount = {};
56919     VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties = {};
56920 
56921   };
56922   static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" );
56923   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesListEXT>::value, "struct wrapper is not a standard layout!" );
56924 
56925   template <>
56926   struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesListEXT>
56927   {
56928     using Type = DrmFormatModifierPropertiesListEXT;
56929   };
56930 
56931   struct ExportFenceCreateInfo
56932   {
56933     static const bool allowDuplicate = false;
56934     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo;
56935 
56936 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56937     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
56938     : handleTypes( handleTypes_ )
56939     {}
56940 
56941     VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
56942 
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56943     ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56944     {
56945       *this = rhs;
56946     }
56947 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
56948 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56949     ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56950     {
56951       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const *>( &rhs );
56952       return *this;
56953     }
56954 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56955     ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
56956     {
56957       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportFenceCreateInfo ) );
56958       return *this;
56959     }
56960 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56961     ExportFenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
56962     {
56963       pNext = pNext_;
56964       return *this;
56965     }
56966 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56967     ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
56968     {
56969       handleTypes = handleTypes_;
56970       return *this;
56971     }
56972 
56973 
operator VkExportFenceCreateInfo const&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56974     operator VkExportFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
56975     {
56976       return *reinterpret_cast<const VkExportFenceCreateInfo*>( this );
56977     }
56978 
operator VkExportFenceCreateInfo&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56979     operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
56980     {
56981       return *reinterpret_cast<VkExportFenceCreateInfo*>( this );
56982     }
56983 
56984 
56985 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
56986     auto operator<=>( ExportFenceCreateInfo const& ) const = default;
56987 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56988     bool operator==( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56989     {
56990       return ( sType == rhs.sType )
56991           && ( pNext == rhs.pNext )
56992           && ( handleTypes == rhs.handleTypes );
56993     }
56994 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo56995     bool operator!=( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
56996     {
56997       return !operator==( rhs );
56998     }
56999 #endif
57000 
57001 
57002 
57003   public:
57004     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo;
57005     const void* pNext = {};
57006     VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {};
57007 
57008   };
57009   static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" );
57010   static_assert( std::is_standard_layout<ExportFenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
57011 
57012   template <>
57013   struct CppType<StructureType, StructureType::eExportFenceCreateInfo>
57014   {
57015     using Type = ExportFenceCreateInfo;
57016   };
57017   using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
57018 
57019 #ifdef VK_USE_PLATFORM_WIN32_KHR
57020   struct ExportFenceWin32HandleInfoKHR
57021   {
57022     static const bool allowDuplicate = false;
57023     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR;
57024 
57025 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57026     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
57027     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
57028     {}
57029 
57030     VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57031 
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57032     ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57033     {
57034       *this = rhs;
57035     }
57036 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57037 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57038     ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57039     {
57040       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const *>( &rhs );
57041       return *this;
57042     }
57043 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57044     ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57045     {
57046       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportFenceWin32HandleInfoKHR ) );
57047       return *this;
57048     }
57049 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57050     ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57051     {
57052       pNext = pNext_;
57053       return *this;
57054     }
57055 
setPAttributesVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57056     ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57057     {
57058       pAttributes = pAttributes_;
57059       return *this;
57060     }
57061 
setDwAccessVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57062     ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57063     {
57064       dwAccess = dwAccess_;
57065       return *this;
57066     }
57067 
setNameVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57068     ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
57069     {
57070       name = name_;
57071       return *this;
57072     }
57073 
57074 
operator VkExportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57075     operator VkExportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
57076     {
57077       return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>( this );
57078     }
57079 
operator VkExportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57080     operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
57081     {
57082       return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>( this );
57083     }
57084 
57085 
57086 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57087     auto operator<=>( ExportFenceWin32HandleInfoKHR const& ) const = default;
57088 #else
operator ==VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57089     bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57090     {
57091       return ( sType == rhs.sType )
57092           && ( pNext == rhs.pNext )
57093           && ( pAttributes == rhs.pAttributes )
57094           && ( dwAccess == rhs.dwAccess )
57095           && ( name == rhs.name );
57096     }
57097 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR57098     bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57099     {
57100       return !operator==( rhs );
57101     }
57102 #endif
57103 
57104 
57105 
57106   public:
57107     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
57108     const void* pNext = {};
57109     const SECURITY_ATTRIBUTES* pAttributes = {};
57110     DWORD dwAccess = {};
57111     LPCWSTR name = {};
57112 
57113   };
57114   static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
57115   static_assert( std::is_standard_layout<ExportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
57116 
57117   template <>
57118   struct CppType<StructureType, StructureType::eExportFenceWin32HandleInfoKHR>
57119   {
57120     using Type = ExportFenceWin32HandleInfoKHR;
57121   };
57122 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57123 
57124   struct ExportMemoryAllocateInfo
57125   {
57126     static const bool allowDuplicate = false;
57127     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo;
57128 
57129 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57130     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57131     : handleTypes( handleTypes_ )
57132     {}
57133 
57134     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57135 
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57136     ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57137     {
57138       *this = rhs;
57139     }
57140 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57141 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57142     ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57143     {
57144       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const *>( &rhs );
57145       return *this;
57146     }
57147 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57148     ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57149     {
57150       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryAllocateInfo ) );
57151       return *this;
57152     }
57153 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57154     ExportMemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57155     {
57156       pNext = pNext_;
57157       return *this;
57158     }
57159 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57160     ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57161     {
57162       handleTypes = handleTypes_;
57163       return *this;
57164     }
57165 
57166 
operator VkExportMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57167     operator VkExportMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
57168     {
57169       return *reinterpret_cast<const VkExportMemoryAllocateInfo*>( this );
57170     }
57171 
operator VkExportMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57172     operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
57173     {
57174       return *reinterpret_cast<VkExportMemoryAllocateInfo*>( this );
57175     }
57176 
57177 
57178 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57179     auto operator<=>( ExportMemoryAllocateInfo const& ) const = default;
57180 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57181     bool operator==( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57182     {
57183       return ( sType == rhs.sType )
57184           && ( pNext == rhs.pNext )
57185           && ( handleTypes == rhs.handleTypes );
57186     }
57187 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo57188     bool operator!=( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57189     {
57190       return !operator==( rhs );
57191     }
57192 #endif
57193 
57194 
57195 
57196   public:
57197     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo;
57198     const void* pNext = {};
57199     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
57200 
57201   };
57202   static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" );
57203   static_assert( std::is_standard_layout<ExportMemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
57204 
57205   template <>
57206   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfo>
57207   {
57208     using Type = ExportMemoryAllocateInfo;
57209   };
57210   using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
57211 
57212   struct ExportMemoryAllocateInfoNV
57213   {
57214     static const bool allowDuplicate = false;
57215     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV;
57216 
57217 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57218     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57219     : handleTypes( handleTypes_ )
57220     {}
57221 
57222     VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57223 
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57224     ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57225     {
57226       *this = rhs;
57227     }
57228 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57229 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57230     ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57231     {
57232       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const *>( &rhs );
57233       return *this;
57234     }
57235 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57236     ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57237     {
57238       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryAllocateInfoNV ) );
57239       return *this;
57240     }
57241 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57242     ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57243     {
57244       pNext = pNext_;
57245       return *this;
57246     }
57247 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57248     ExportMemoryAllocateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
57249     {
57250       handleTypes = handleTypes_;
57251       return *this;
57252     }
57253 
57254 
operator VkExportMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57255     operator VkExportMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT
57256     {
57257       return *reinterpret_cast<const VkExportMemoryAllocateInfoNV*>( this );
57258     }
57259 
operator VkExportMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57260     operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
57261     {
57262       return *reinterpret_cast<VkExportMemoryAllocateInfoNV*>( this );
57263     }
57264 
57265 
57266 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57267     auto operator<=>( ExportMemoryAllocateInfoNV const& ) const = default;
57268 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57269     bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57270     {
57271       return ( sType == rhs.sType )
57272           && ( pNext == rhs.pNext )
57273           && ( handleTypes == rhs.handleTypes );
57274     }
57275 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV57276     bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57277     {
57278       return !operator==( rhs );
57279     }
57280 #endif
57281 
57282 
57283 
57284   public:
57285     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
57286     const void* pNext = {};
57287     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
57288 
57289   };
57290   static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
57291   static_assert( std::is_standard_layout<ExportMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
57292 
57293   template <>
57294   struct CppType<StructureType, StructureType::eExportMemoryAllocateInfoNV>
57295   {
57296     using Type = ExportMemoryAllocateInfoNV;
57297   };
57298 
57299 #ifdef VK_USE_PLATFORM_WIN32_KHR
57300   struct ExportMemoryWin32HandleInfoKHR
57301   {
57302     static const bool allowDuplicate = false;
57303     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR;
57304 
57305 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57306     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
57307     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
57308     {}
57309 
57310     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57311 
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57312     ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57313     {
57314       *this = rhs;
57315     }
57316 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57317 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57318     ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57319     {
57320       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const *>( &rhs );
57321       return *this;
57322     }
57323 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57324     ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57325     {
57326       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryWin32HandleInfoKHR ) );
57327       return *this;
57328     }
57329 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57330     ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57331     {
57332       pNext = pNext_;
57333       return *this;
57334     }
57335 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57336     ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57337     {
57338       pAttributes = pAttributes_;
57339       return *this;
57340     }
57341 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57342     ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57343     {
57344       dwAccess = dwAccess_;
57345       return *this;
57346     }
57347 
setNameVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57348     ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
57349     {
57350       name = name_;
57351       return *this;
57352     }
57353 
57354 
operator VkExportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57355     operator VkExportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
57356     {
57357       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>( this );
57358     }
57359 
operator VkExportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57360     operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
57361     {
57362       return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>( this );
57363     }
57364 
57365 
57366 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57367     auto operator<=>( ExportMemoryWin32HandleInfoKHR const& ) const = default;
57368 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57369     bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57370     {
57371       return ( sType == rhs.sType )
57372           && ( pNext == rhs.pNext )
57373           && ( pAttributes == rhs.pAttributes )
57374           && ( dwAccess == rhs.dwAccess )
57375           && ( name == rhs.name );
57376     }
57377 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR57378     bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57379     {
57380       return !operator==( rhs );
57381     }
57382 #endif
57383 
57384 
57385 
57386   public:
57387     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
57388     const void* pNext = {};
57389     const SECURITY_ATTRIBUTES* pAttributes = {};
57390     DWORD dwAccess = {};
57391     LPCWSTR name = {};
57392 
57393   };
57394   static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
57395   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
57396 
57397   template <>
57398   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoKHR>
57399   {
57400     using Type = ExportMemoryWin32HandleInfoKHR;
57401   };
57402 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57403 
57404 #ifdef VK_USE_PLATFORM_WIN32_KHR
57405   struct ExportMemoryWin32HandleInfoNV
57406   {
57407     static const bool allowDuplicate = false;
57408     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV;
57409 
57410 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57411     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}) VULKAN_HPP_NOEXCEPT
57412     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ )
57413     {}
57414 
57415     VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57416 
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57417     ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57418     {
57419       *this = rhs;
57420     }
57421 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57422 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57423     ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57424     {
57425       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const *>( &rhs );
57426       return *this;
57427     }
57428 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57429     ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
57430     {
57431       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportMemoryWin32HandleInfoNV ) );
57432       return *this;
57433     }
57434 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57435     ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57436     {
57437       pNext = pNext_;
57438       return *this;
57439     }
57440 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57441     ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57442     {
57443       pAttributes = pAttributes_;
57444       return *this;
57445     }
57446 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57447     ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57448     {
57449       dwAccess = dwAccess_;
57450       return *this;
57451     }
57452 
57453 
operator VkExportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57454     operator VkExportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
57455     {
57456       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>( this );
57457     }
57458 
operator VkExportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57459     operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
57460     {
57461       return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>( this );
57462     }
57463 
57464 
57465 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57466     auto operator<=>( ExportMemoryWin32HandleInfoNV const& ) const = default;
57467 #else
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57468     bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57469     {
57470       return ( sType == rhs.sType )
57471           && ( pNext == rhs.pNext )
57472           && ( pAttributes == rhs.pAttributes )
57473           && ( dwAccess == rhs.dwAccess );
57474     }
57475 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV57476     bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
57477     {
57478       return !operator==( rhs );
57479     }
57480 #endif
57481 
57482 
57483 
57484   public:
57485     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
57486     const void* pNext = {};
57487     const SECURITY_ATTRIBUTES* pAttributes = {};
57488     DWORD dwAccess = {};
57489 
57490   };
57491   static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
57492   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
57493 
57494   template <>
57495   struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoNV>
57496   {
57497     using Type = ExportMemoryWin32HandleInfoNV;
57498   };
57499 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57500 
57501   struct ExportSemaphoreCreateInfo
57502   {
57503     static const bool allowDuplicate = false;
57504     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo;
57505 
57506 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57507     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57508     : handleTypes( handleTypes_ )
57509     {}
57510 
57511     VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57512 
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57513     ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57514     {
57515       *this = rhs;
57516     }
57517 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57518 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57519     ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57520     {
57521       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const *>( &rhs );
57522       return *this;
57523     }
57524 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57525     ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57526     {
57527       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportSemaphoreCreateInfo ) );
57528       return *this;
57529     }
57530 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57531     ExportSemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57532     {
57533       pNext = pNext_;
57534       return *this;
57535     }
57536 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57537     ExportSemaphoreCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57538     {
57539       handleTypes = handleTypes_;
57540       return *this;
57541     }
57542 
57543 
operator VkExportSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57544     operator VkExportSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57545     {
57546       return *reinterpret_cast<const VkExportSemaphoreCreateInfo*>( this );
57547     }
57548 
operator VkExportSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57549     operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
57550     {
57551       return *reinterpret_cast<VkExportSemaphoreCreateInfo*>( this );
57552     }
57553 
57554 
57555 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57556     auto operator<=>( ExportSemaphoreCreateInfo const& ) const = default;
57557 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57558     bool operator==( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57559     {
57560       return ( sType == rhs.sType )
57561           && ( pNext == rhs.pNext )
57562           && ( handleTypes == rhs.handleTypes );
57563     }
57564 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo57565     bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57566     {
57567       return !operator==( rhs );
57568     }
57569 #endif
57570 
57571 
57572 
57573   public:
57574     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo;
57575     const void* pNext = {};
57576     VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {};
57577 
57578   };
57579   static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" );
57580   static_assert( std::is_standard_layout<ExportSemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
57581 
57582   template <>
57583   struct CppType<StructureType, StructureType::eExportSemaphoreCreateInfo>
57584   {
57585     using Type = ExportSemaphoreCreateInfo;
57586   };
57587   using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
57588 
57589 #ifdef VK_USE_PLATFORM_WIN32_KHR
57590   struct ExportSemaphoreWin32HandleInfoKHR
57591   {
57592     static const bool allowDuplicate = false;
57593     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
57594 
57595 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57596     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
57597     : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ )
57598     {}
57599 
57600     VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57601 
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57602     ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57603     {
57604       *this = rhs;
57605     }
57606 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57607 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57608     ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57609     {
57610       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const *>( &rhs );
57611       return *this;
57612     }
57613 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57614     ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
57615     {
57616       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExportSemaphoreWin32HandleInfoKHR ) );
57617       return *this;
57618     }
57619 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57620     ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57621     {
57622       pNext = pNext_;
57623       return *this;
57624     }
57625 
setPAttributesVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57626     ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT
57627     {
57628       pAttributes = pAttributes_;
57629       return *this;
57630     }
57631 
setDwAccessVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57632     ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
57633     {
57634       dwAccess = dwAccess_;
57635       return *this;
57636     }
57637 
setNameVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57638     ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
57639     {
57640       name = name_;
57641       return *this;
57642     }
57643 
57644 
operator VkExportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57645     operator VkExportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
57646     {
57647       return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>( this );
57648     }
57649 
operator VkExportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57650     operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
57651     {
57652       return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>( this );
57653     }
57654 
57655 
57656 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57657     auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const& ) const = default;
57658 #else
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57659     bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57660     {
57661       return ( sType == rhs.sType )
57662           && ( pNext == rhs.pNext )
57663           && ( pAttributes == rhs.pAttributes )
57664           && ( dwAccess == rhs.dwAccess )
57665           && ( name == rhs.name );
57666     }
57667 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR57668     bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
57669     {
57670       return !operator==( rhs );
57671     }
57672 #endif
57673 
57674 
57675 
57676   public:
57677     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
57678     const void* pNext = {};
57679     const SECURITY_ATTRIBUTES* pAttributes = {};
57680     DWORD dwAccess = {};
57681     LPCWSTR name = {};
57682 
57683   };
57684   static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
57685   static_assert( std::is_standard_layout<ExportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
57686 
57687   template <>
57688   struct CppType<StructureType, StructureType::eExportSemaphoreWin32HandleInfoKHR>
57689   {
57690     using Type = ExportSemaphoreWin32HandleInfoKHR;
57691   };
57692 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
57693 
57694 #ifdef VK_USE_PLATFORM_ANDROID_KHR
57695   struct ExternalFormatANDROID
57696   {
57697     static const bool allowDuplicate = false;
57698     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID;
57699 
57700 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57701     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID(uint64_t externalFormat_ = {}) VULKAN_HPP_NOEXCEPT
57702     : externalFormat( externalFormat_ )
57703     {}
57704 
57705     VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57706 
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57707     ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
57708     {
57709       *this = rhs;
57710     }
57711 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57712 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57713     ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
57714     {
57715       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const *>( &rhs );
57716       return *this;
57717     }
57718 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57719     ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
57720     {
57721       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalFormatANDROID ) );
57722       return *this;
57723     }
57724 
setPNextVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57725     ExternalFormatANDROID & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
57726     {
57727       pNext = pNext_;
57728       return *this;
57729     }
57730 
setExternalFormatVULKAN_HPP_NAMESPACE::ExternalFormatANDROID57731     ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
57732     {
57733       externalFormat = externalFormat_;
57734       return *this;
57735     }
57736 
57737 
operator VkExternalFormatANDROID const&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57738     operator VkExternalFormatANDROID const&() const VULKAN_HPP_NOEXCEPT
57739     {
57740       return *reinterpret_cast<const VkExternalFormatANDROID*>( this );
57741     }
57742 
operator VkExternalFormatANDROID&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57743     operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT
57744     {
57745       return *reinterpret_cast<VkExternalFormatANDROID*>( this );
57746     }
57747 
57748 
57749 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57750     auto operator<=>( ExternalFormatANDROID const& ) const = default;
57751 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57752     bool operator==( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
57753     {
57754       return ( sType == rhs.sType )
57755           && ( pNext == rhs.pNext )
57756           && ( externalFormat == rhs.externalFormat );
57757     }
57758 
operator !=VULKAN_HPP_NAMESPACE::ExternalFormatANDROID57759     bool operator!=( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
57760     {
57761       return !operator==( rhs );
57762     }
57763 #endif
57764 
57765 
57766 
57767   public:
57768     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID;
57769     void* pNext = {};
57770     uint64_t externalFormat = {};
57771 
57772   };
57773   static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" );
57774   static_assert( std::is_standard_layout<ExternalFormatANDROID>::value, "struct wrapper is not a standard layout!" );
57775 
57776   template <>
57777   struct CppType<StructureType, StructureType::eExternalFormatANDROID>
57778   {
57779     using Type = ExternalFormatANDROID;
57780   };
57781 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
57782 
57783   struct ExternalImageFormatProperties
57784   {
57785     static const bool allowDuplicate = false;
57786     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties;
57787 
57788 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57789     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT
57790     : externalMemoryProperties( externalMemoryProperties_ )
57791     {}
57792 
57793     VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57794 
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57795     ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57796     {
57797       *this = rhs;
57798     }
57799 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57800 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57801     ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57802     {
57803       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const *>( &rhs );
57804       return *this;
57805     }
57806 
operator =VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57807     ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
57808     {
57809       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalImageFormatProperties ) );
57810       return *this;
57811     }
57812 
57813 
operator VkExternalImageFormatProperties const&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57814     operator VkExternalImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
57815     {
57816       return *reinterpret_cast<const VkExternalImageFormatProperties*>( this );
57817     }
57818 
operator VkExternalImageFormatProperties&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57819     operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT
57820     {
57821       return *reinterpret_cast<VkExternalImageFormatProperties*>( this );
57822     }
57823 
57824 
57825 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57826     auto operator<=>( ExternalImageFormatProperties const& ) const = default;
57827 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57828     bool operator==( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
57829     {
57830       return ( sType == rhs.sType )
57831           && ( pNext == rhs.pNext )
57832           && ( externalMemoryProperties == rhs.externalMemoryProperties );
57833     }
57834 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties57835     bool operator!=( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
57836     {
57837       return !operator==( rhs );
57838     }
57839 #endif
57840 
57841 
57842 
57843   public:
57844     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties;
57845     void* pNext = {};
57846     VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
57847 
57848   };
57849   static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" );
57850   static_assert( std::is_standard_layout<ExternalImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
57851 
57852   template <>
57853   struct CppType<StructureType, StructureType::eExternalImageFormatProperties>
57854   {
57855     using Type = ExternalImageFormatProperties;
57856   };
57857   using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
57858 
57859   struct ExternalMemoryBufferCreateInfo
57860   {
57861     static const bool allowDuplicate = false;
57862     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo;
57863 
57864 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57865     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57866     : handleTypes( handleTypes_ )
57867     {}
57868 
57869     VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57870 
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57871     ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57872     {
57873       *this = rhs;
57874     }
57875 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57876 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57877     ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57878     {
57879       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const *>( &rhs );
57880       return *this;
57881     }
57882 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57883     ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57884     {
57885       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryBufferCreateInfo ) );
57886       return *this;
57887     }
57888 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57889     ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57890     {
57891       pNext = pNext_;
57892       return *this;
57893     }
57894 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57895     ExternalMemoryBufferCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57896     {
57897       handleTypes = handleTypes_;
57898       return *this;
57899     }
57900 
57901 
operator VkExternalMemoryBufferCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57902     operator VkExternalMemoryBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57903     {
57904       return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>( this );
57905     }
57906 
operator VkExternalMemoryBufferCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57907     operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
57908     {
57909       return *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>( this );
57910     }
57911 
57912 
57913 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
57914     auto operator<=>( ExternalMemoryBufferCreateInfo const& ) const = default;
57915 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57916     bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57917     {
57918       return ( sType == rhs.sType )
57919           && ( pNext == rhs.pNext )
57920           && ( handleTypes == rhs.handleTypes );
57921     }
57922 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo57923     bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
57924     {
57925       return !operator==( rhs );
57926     }
57927 #endif
57928 
57929 
57930 
57931   public:
57932     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
57933     const void* pNext = {};
57934     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
57935 
57936   };
57937   static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" );
57938   static_assert( std::is_standard_layout<ExternalMemoryBufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
57939 
57940   template <>
57941   struct CppType<StructureType, StructureType::eExternalMemoryBufferCreateInfo>
57942   {
57943     using Type = ExternalMemoryBufferCreateInfo;
57944   };
57945   using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
57946 
57947   struct ExternalMemoryImageCreateInfo
57948   {
57949     static const bool allowDuplicate = false;
57950     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo;
57951 
57952 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57953     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
57954     : handleTypes( handleTypes_ )
57955     {}
57956 
57957     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
57958 
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57959     ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57960     {
57961       *this = rhs;
57962     }
57963 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57964 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57965     ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57966     {
57967       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const *>( &rhs );
57968       return *this;
57969     }
57970 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57971     ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
57972     {
57973       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryImageCreateInfo ) );
57974       return *this;
57975     }
57976 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57977     ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
57978     {
57979       pNext = pNext_;
57980       return *this;
57981     }
57982 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57983     ExternalMemoryImageCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
57984     {
57985       handleTypes = handleTypes_;
57986       return *this;
57987     }
57988 
57989 
operator VkExternalMemoryImageCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57990     operator VkExternalMemoryImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
57991     {
57992       return *reinterpret_cast<const VkExternalMemoryImageCreateInfo*>( this );
57993     }
57994 
operator VkExternalMemoryImageCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo57995     operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT
57996     {
57997       return *reinterpret_cast<VkExternalMemoryImageCreateInfo*>( this );
57998     }
57999 
58000 
58001 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58002     auto operator<=>( ExternalMemoryImageCreateInfo const& ) const = default;
58003 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58004     bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58005     {
58006       return ( sType == rhs.sType )
58007           && ( pNext == rhs.pNext )
58008           && ( handleTypes == rhs.handleTypes );
58009     }
58010 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo58011     bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58012     {
58013       return !operator==( rhs );
58014     }
58015 #endif
58016 
58017 
58018 
58019   public:
58020     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
58021     const void* pNext = {};
58022     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
58023 
58024   };
58025   static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" );
58026   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
58027 
58028   template <>
58029   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfo>
58030   {
58031     using Type = ExternalMemoryImageCreateInfo;
58032   };
58033   using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
58034 
58035   struct ExternalMemoryImageCreateInfoNV
58036   {
58037     static const bool allowDuplicate = false;
58038     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV;
58039 
58040 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58041     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT
58042     : handleTypes( handleTypes_ )
58043     {}
58044 
58045     VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58046 
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58047     ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58048     {
58049       *this = rhs;
58050     }
58051 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58052 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58053     ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58054     {
58055       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const *>( &rhs );
58056       return *this;
58057     }
58058 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58059     ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58060     {
58061       memcpy( static_cast<void *>( this ), &rhs, sizeof( ExternalMemoryImageCreateInfoNV ) );
58062       return *this;
58063     }
58064 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58065     ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58066     {
58067       pNext = pNext_;
58068       return *this;
58069     }
58070 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58071     ExternalMemoryImageCreateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
58072     {
58073       handleTypes = handleTypes_;
58074       return *this;
58075     }
58076 
58077 
operator VkExternalMemoryImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58078     operator VkExternalMemoryImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
58079     {
58080       return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>( this );
58081     }
58082 
operator VkExternalMemoryImageCreateInfoNV&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58083     operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
58084     {
58085       return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>( this );
58086     }
58087 
58088 
58089 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58090     auto operator<=>( ExternalMemoryImageCreateInfoNV const& ) const = default;
58091 #else
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58092     bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58093     {
58094       return ( sType == rhs.sType )
58095           && ( pNext == rhs.pNext )
58096           && ( handleTypes == rhs.handleTypes );
58097     }
58098 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV58099     bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58100     {
58101       return !operator==( rhs );
58102     }
58103 #endif
58104 
58105 
58106 
58107   public:
58108     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
58109     const void* pNext = {};
58110     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
58111 
58112   };
58113   static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" );
58114   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
58115 
58116   template <>
58117   struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfoNV>
58118   {
58119     using Type = ExternalMemoryImageCreateInfoNV;
58120   };
58121 
58122   struct FilterCubicImageViewImageFormatPropertiesEXT
58123   {
58124     static const bool allowDuplicate = false;
58125     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
58126 
58127 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58128     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {}) VULKAN_HPP_NOEXCEPT
58129     : filterCubic( filterCubic_ ), filterCubicMinmax( filterCubicMinmax_ )
58130     {}
58131 
58132     VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58133 
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58134     FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58135     {
58136       *this = rhs;
58137     }
58138 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58139 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58140     FilterCubicImageViewImageFormatPropertiesEXT & operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58141     {
58142       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs );
58143       return *this;
58144     }
58145 
operator =VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58146     FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58147     {
58148       memcpy( static_cast<void *>( this ), &rhs, sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) );
58149       return *this;
58150     }
58151 
58152 
operator VkFilterCubicImageViewImageFormatPropertiesEXT const&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58153     operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
58154     {
58155       return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
58156     }
58157 
operator VkFilterCubicImageViewImageFormatPropertiesEXT&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58158     operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT
58159     {
58160       return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
58161     }
58162 
58163 
58164 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58165     auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const& ) const = default;
58166 #else
operator ==VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58167     bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58168     {
58169       return ( sType == rhs.sType )
58170           && ( pNext == rhs.pNext )
58171           && ( filterCubic == rhs.filterCubic )
58172           && ( filterCubicMinmax == rhs.filterCubicMinmax );
58173     }
58174 
operator !=VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT58175     bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58176     {
58177       return !operator==( rhs );
58178     }
58179 #endif
58180 
58181 
58182 
58183   public:
58184     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
58185     void* pNext = {};
58186     VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {};
58187     VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {};
58188 
58189   };
58190   static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" );
58191   static_assert( std::is_standard_layout<FilterCubicImageViewImageFormatPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
58192 
58193   template <>
58194   struct CppType<StructureType, StructureType::eFilterCubicImageViewImageFormatPropertiesEXT>
58195   {
58196     using Type = FilterCubicImageViewImageFormatPropertiesEXT;
58197   };
58198 
58199   struct FragmentShadingRateAttachmentInfoKHR
58200   {
58201     static const bool allowDuplicate = false;
58202     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
58203 
58204 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58205     VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR(const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ = {}, VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {}) VULKAN_HPP_NOEXCEPT
58206     : pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ ), shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
58207     {}
58208 
58209     VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58210 
FragmentShadingRateAttachmentInfoKHRVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58211     FragmentShadingRateAttachmentInfoKHR( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58212     {
58213       *this = rhs;
58214     }
58215 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58216 
operator =VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58217     FragmentShadingRateAttachmentInfoKHR & operator=( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58218     {
58219       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR const *>( &rhs );
58220       return *this;
58221     }
58222 
operator =VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58223     FragmentShadingRateAttachmentInfoKHR & operator=( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
58224     {
58225       memcpy( static_cast<void *>( this ), &rhs, sizeof( FragmentShadingRateAttachmentInfoKHR ) );
58226       return *this;
58227     }
58228 
setPNextVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58229     FragmentShadingRateAttachmentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58230     {
58231       pNext = pNext_;
58232       return *this;
58233     }
58234 
setPFragmentShadingRateAttachmentVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58235     FragmentShadingRateAttachmentInfoKHR & setPFragmentShadingRateAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ ) VULKAN_HPP_NOEXCEPT
58236     {
58237       pFragmentShadingRateAttachment = pFragmentShadingRateAttachment_;
58238       return *this;
58239     }
58240 
setShadingRateAttachmentTexelSizeVULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58241     FragmentShadingRateAttachmentInfoKHR & setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
58242     {
58243       shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
58244       return *this;
58245     }
58246 
58247 
operator VkFragmentShadingRateAttachmentInfoKHR const&VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58248     operator VkFragmentShadingRateAttachmentInfoKHR const&() const VULKAN_HPP_NOEXCEPT
58249     {
58250       return *reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>( this );
58251     }
58252 
operator VkFragmentShadingRateAttachmentInfoKHR&VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58253     operator VkFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT
58254     {
58255       return *reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>( this );
58256     }
58257 
58258 
58259 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58260     auto operator<=>( FragmentShadingRateAttachmentInfoKHR const& ) const = default;
58261 #else
operator ==VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58262     bool operator==( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
58263     {
58264       return ( sType == rhs.sType )
58265           && ( pNext == rhs.pNext )
58266           && ( pFragmentShadingRateAttachment == rhs.pFragmentShadingRateAttachment )
58267           && ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize );
58268     }
58269 
operator !=VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR58270     bool operator!=( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
58271     {
58272       return !operator==( rhs );
58273     }
58274 #endif
58275 
58276 
58277 
58278   public:
58279     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
58280     const void* pNext = {};
58281     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment = {};
58282     VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {};
58283 
58284   };
58285   static_assert( sizeof( FragmentShadingRateAttachmentInfoKHR ) == sizeof( VkFragmentShadingRateAttachmentInfoKHR ), "struct and wrapper have different size!" );
58286   static_assert( std::is_standard_layout<FragmentShadingRateAttachmentInfoKHR>::value, "struct wrapper is not a standard layout!" );
58287 
58288   template <>
58289   struct CppType<StructureType, StructureType::eFragmentShadingRateAttachmentInfoKHR>
58290   {
58291     using Type = FragmentShadingRateAttachmentInfoKHR;
58292   };
58293 
58294   struct FramebufferAttachmentImageInfo
58295   {
58296     static const bool allowDuplicate = false;
58297     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo;
58298 
58299 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58300     VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo(VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layerCount_ = {}, uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {}) VULKAN_HPP_NOEXCEPT
58301     : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
58302     {}
58303 
58304     VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58305 
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58306     FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58307     {
58308       *this = rhs;
58309     }
58310 
58311 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferAttachmentImageInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58312     FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, uint32_t width_, uint32_t height_, uint32_t layerCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ )
58313     : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
58314     {}
58315 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58316 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58317 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58318     FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58319     {
58320       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const *>( &rhs );
58321       return *this;
58322     }
58323 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58324     FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58325     {
58326       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferAttachmentImageInfo ) );
58327       return *this;
58328     }
58329 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58330     FramebufferAttachmentImageInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58331     {
58332       pNext = pNext_;
58333       return *this;
58334     }
58335 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58336     FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
58337     {
58338       flags = flags_;
58339       return *this;
58340     }
58341 
setUsageVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58342     FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
58343     {
58344       usage = usage_;
58345       return *this;
58346     }
58347 
setWidthVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58348     FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
58349     {
58350       width = width_;
58351       return *this;
58352     }
58353 
setHeightVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58354     FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
58355     {
58356       height = height_;
58357       return *this;
58358     }
58359 
setLayerCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58360     FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
58361     {
58362       layerCount = layerCount_;
58363       return *this;
58364     }
58365 
setViewFormatCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58366     FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
58367     {
58368       viewFormatCount = viewFormatCount_;
58369       return *this;
58370     }
58371 
setPViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58372     FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
58373     {
58374       pViewFormats = pViewFormats_;
58375       return *this;
58376     }
58377 
58378 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58379     FramebufferAttachmentImageInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
58380     {
58381       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
58382       pViewFormats = viewFormats_.data();
58383       return *this;
58384     }
58385 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58386 
58387 
operator VkFramebufferAttachmentImageInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58388     operator VkFramebufferAttachmentImageInfo const&() const VULKAN_HPP_NOEXCEPT
58389     {
58390       return *reinterpret_cast<const VkFramebufferAttachmentImageInfo*>( this );
58391     }
58392 
operator VkFramebufferAttachmentImageInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58393     operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT
58394     {
58395       return *reinterpret_cast<VkFramebufferAttachmentImageInfo*>( this );
58396     }
58397 
58398 
58399 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58400     auto operator<=>( FramebufferAttachmentImageInfo const& ) const = default;
58401 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58402     bool operator==( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58403     {
58404       return ( sType == rhs.sType )
58405           && ( pNext == rhs.pNext )
58406           && ( flags == rhs.flags )
58407           && ( usage == rhs.usage )
58408           && ( width == rhs.width )
58409           && ( height == rhs.height )
58410           && ( layerCount == rhs.layerCount )
58411           && ( viewFormatCount == rhs.viewFormatCount )
58412           && ( pViewFormats == rhs.pViewFormats );
58413     }
58414 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo58415     bool operator!=( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58416     {
58417       return !operator==( rhs );
58418     }
58419 #endif
58420 
58421 
58422 
58423   public:
58424     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo;
58425     const void* pNext = {};
58426     VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
58427     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
58428     uint32_t width = {};
58429     uint32_t height = {};
58430     uint32_t layerCount = {};
58431     uint32_t viewFormatCount = {};
58432     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
58433 
58434   };
58435   static_assert( sizeof( FramebufferAttachmentImageInfo ) == sizeof( VkFramebufferAttachmentImageInfo ), "struct and wrapper have different size!" );
58436   static_assert( std::is_standard_layout<FramebufferAttachmentImageInfo>::value, "struct wrapper is not a standard layout!" );
58437 
58438   template <>
58439   struct CppType<StructureType, StructureType::eFramebufferAttachmentImageInfo>
58440   {
58441     using Type = FramebufferAttachmentImageInfo;
58442   };
58443   using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
58444 
58445   struct FramebufferAttachmentsCreateInfo
58446   {
58447     static const bool allowDuplicate = false;
58448     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo;
58449 
58450 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58451     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo(uint32_t attachmentImageInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ = {}) VULKAN_HPP_NOEXCEPT
58452     : attachmentImageInfoCount( attachmentImageInfoCount_ ), pAttachmentImageInfos( pAttachmentImageInfos_ )
58453     {}
58454 
58455     VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58456 
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58457     FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58458     {
58459       *this = rhs;
58460     }
58461 
58462 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
FramebufferAttachmentsCreateInfoVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58463     FramebufferAttachmentsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ )
58464     : attachmentImageInfoCount( static_cast<uint32_t>( attachmentImageInfos_.size() ) ), pAttachmentImageInfos( attachmentImageInfos_.data() )
58465     {}
58466 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58467 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58468 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58469     FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58470     {
58471       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const *>( &rhs );
58472       return *this;
58473     }
58474 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58475     FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
58476     {
58477       memcpy( static_cast<void *>( this ), &rhs, sizeof( FramebufferAttachmentsCreateInfo ) );
58478       return *this;
58479     }
58480 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58481     FramebufferAttachmentsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58482     {
58483       pNext = pNext_;
58484       return *this;
58485     }
58486 
setAttachmentImageInfoCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58487     FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT
58488     {
58489       attachmentImageInfoCount = attachmentImageInfoCount_;
58490       return *this;
58491     }
58492 
setPAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58493     FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
58494     {
58495       pAttachmentImageInfos = pAttachmentImageInfos_;
58496       return *this;
58497     }
58498 
58499 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58500     FramebufferAttachmentsCreateInfo & setAttachmentImageInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
58501     {
58502       attachmentImageInfoCount = static_cast<uint32_t>( attachmentImageInfos_.size() );
58503       pAttachmentImageInfos = attachmentImageInfos_.data();
58504       return *this;
58505     }
58506 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58507 
58508 
operator VkFramebufferAttachmentsCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58509     operator VkFramebufferAttachmentsCreateInfo const&() const VULKAN_HPP_NOEXCEPT
58510     {
58511       return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>( this );
58512     }
58513 
operator VkFramebufferAttachmentsCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58514     operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT
58515     {
58516       return *reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>( this );
58517     }
58518 
58519 
58520 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58521     auto operator<=>( FramebufferAttachmentsCreateInfo const& ) const = default;
58522 #else
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58523     bool operator==( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58524     {
58525       return ( sType == rhs.sType )
58526           && ( pNext == rhs.pNext )
58527           && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount )
58528           && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
58529     }
58530 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo58531     bool operator!=( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
58532     {
58533       return !operator==( rhs );
58534     }
58535 #endif
58536 
58537 
58538 
58539   public:
58540     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo;
58541     const void* pNext = {};
58542     uint32_t attachmentImageInfoCount = {};
58543     const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos = {};
58544 
58545   };
58546   static_assert( sizeof( FramebufferAttachmentsCreateInfo ) == sizeof( VkFramebufferAttachmentsCreateInfo ), "struct and wrapper have different size!" );
58547   static_assert( std::is_standard_layout<FramebufferAttachmentsCreateInfo>::value, "struct wrapper is not a standard layout!" );
58548 
58549   template <>
58550   struct CppType<StructureType, StructureType::eFramebufferAttachmentsCreateInfo>
58551   {
58552     using Type = FramebufferAttachmentsCreateInfo;
58553   };
58554   using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
58555 
58556   struct GraphicsShaderGroupCreateInfoNV
58557   {
58558     static const bool allowDuplicate = false;
58559     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV;
58560 
58561 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58562     VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV(uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}) VULKAN_HPP_NOEXCEPT
58563     : stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
58564     {}
58565 
58566     VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58567 
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58568     GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58569     {
58570       *this = rhs;
58571     }
58572 
58573 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58574     GraphicsShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {} )
58575     : stageCount( static_cast<uint32_t>( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ )
58576     {}
58577 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58578 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58579 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58580     GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58581     {
58582       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const *>( &rhs );
58583       return *this;
58584     }
58585 
operator =VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58586     GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58587     {
58588       memcpy( static_cast<void *>( this ), &rhs, sizeof( GraphicsShaderGroupCreateInfoNV ) );
58589       return *this;
58590     }
58591 
setPNextVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58592     GraphicsShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58593     {
58594       pNext = pNext_;
58595       return *this;
58596     }
58597 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58598     GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
58599     {
58600       stageCount = stageCount_;
58601       return *this;
58602     }
58603 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58604     GraphicsShaderGroupCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT
58605     {
58606       pStages = pStages_;
58607       return *this;
58608     }
58609 
58610 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setStagesVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58611     GraphicsShaderGroupCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
58612     {
58613       stageCount = static_cast<uint32_t>( stages_.size() );
58614       pStages = stages_.data();
58615       return *this;
58616     }
58617 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58618 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58619     GraphicsShaderGroupCreateInfoNV & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
58620     {
58621       pVertexInputState = pVertexInputState_;
58622       return *this;
58623     }
58624 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58625     GraphicsShaderGroupCreateInfoNV & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT
58626     {
58627       pTessellationState = pTessellationState_;
58628       return *this;
58629     }
58630 
58631 
operator VkGraphicsShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58632     operator VkGraphicsShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
58633     {
58634       return *reinterpret_cast<const VkGraphicsShaderGroupCreateInfoNV*>( this );
58635     }
58636 
operator VkGraphicsShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58637     operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
58638     {
58639       return *reinterpret_cast<VkGraphicsShaderGroupCreateInfoNV*>( this );
58640     }
58641 
58642 
58643 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58644     auto operator<=>( GraphicsShaderGroupCreateInfoNV const& ) const = default;
58645 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58646     bool operator==( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58647     {
58648       return ( sType == rhs.sType )
58649           && ( pNext == rhs.pNext )
58650           && ( stageCount == rhs.stageCount )
58651           && ( pStages == rhs.pStages )
58652           && ( pVertexInputState == rhs.pVertexInputState )
58653           && ( pTessellationState == rhs.pTessellationState );
58654     }
58655 
operator !=VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV58656     bool operator!=( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58657     {
58658       return !operator==( rhs );
58659     }
58660 #endif
58661 
58662 
58663 
58664   public:
58665     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV;
58666     const void* pNext = {};
58667     uint32_t stageCount = {};
58668     const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {};
58669     const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {};
58670     const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {};
58671 
58672   };
58673   static_assert( sizeof( GraphicsShaderGroupCreateInfoNV ) == sizeof( VkGraphicsShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
58674   static_assert( std::is_standard_layout<GraphicsShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
58675 
58676   template <>
58677   struct CppType<StructureType, StructureType::eGraphicsShaderGroupCreateInfoNV>
58678   {
58679     using Type = GraphicsShaderGroupCreateInfoNV;
58680   };
58681 
58682   struct GraphicsPipelineShaderGroupsCreateInfoNV
58683   {
58684     static const bool allowDuplicate = false;
58685     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
58686 
58687 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58688     VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV(uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ = {}, uint32_t pipelineCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ = {}) VULKAN_HPP_NOEXCEPT
58689     : groupCount( groupCount_ ), pGroups( pGroups_ ), pipelineCount( pipelineCount_ ), pPipelines( pPipelines_ )
58690     {}
58691 
58692     VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58693 
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58694     GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58695     {
58696       *this = rhs;
58697     }
58698 
58699 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
GraphicsPipelineShaderGroupsCreateInfoNVVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58700     GraphicsPipelineShaderGroupsCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ = {} )
58701     : groupCount( static_cast<uint32_t>( groups_.size() ) ), pGroups( groups_.data() ), pipelineCount( static_cast<uint32_t>( pipelines_.size() ) ), pPipelines( pipelines_.data() )
58702     {}
58703 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58704 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58705 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58706     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58707     {
58708       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs );
58709       return *this;
58710     }
58711 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58712     GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
58713     {
58714       memcpy( static_cast<void *>( this ), &rhs, sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) );
58715       return *this;
58716     }
58717 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58718     GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58719     {
58720       pNext = pNext_;
58721       return *this;
58722     }
58723 
setGroupCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58724     GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
58725     {
58726       groupCount = groupCount_;
58727       return *this;
58728     }
58729 
setPGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58730     GraphicsPipelineShaderGroupsCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT
58731     {
58732       pGroups = pGroups_;
58733       return *this;
58734     }
58735 
58736 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setGroupsVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58737     GraphicsPipelineShaderGroupsCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
58738     {
58739       groupCount = static_cast<uint32_t>( groups_.size() );
58740       pGroups = groups_.data();
58741       return *this;
58742     }
58743 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58744 
setPipelineCountVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58745     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT
58746     {
58747       pipelineCount = pipelineCount_;
58748       return *this;
58749     }
58750 
setPPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58751     GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ ) VULKAN_HPP_NOEXCEPT
58752     {
58753       pPipelines = pPipelines_;
58754       return *this;
58755     }
58756 
58757 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPipelinesVULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58758     GraphicsPipelineShaderGroupsCreateInfoNV & setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ ) VULKAN_HPP_NOEXCEPT
58759     {
58760       pipelineCount = static_cast<uint32_t>( pipelines_.size() );
58761       pPipelines = pipelines_.data();
58762       return *this;
58763     }
58764 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
58765 
58766 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58767     operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
58768     {
58769       return *reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
58770     }
58771 
operator VkGraphicsPipelineShaderGroupsCreateInfoNV&VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58772     operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT
58773     {
58774       return *reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>( this );
58775     }
58776 
58777 
58778 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58779     auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const& ) const = default;
58780 #else
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58781     bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58782     {
58783       return ( sType == rhs.sType )
58784           && ( pNext == rhs.pNext )
58785           && ( groupCount == rhs.groupCount )
58786           && ( pGroups == rhs.pGroups )
58787           && ( pipelineCount == rhs.pipelineCount )
58788           && ( pPipelines == rhs.pPipelines );
58789     }
58790 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV58791     bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
58792     {
58793       return !operator==( rhs );
58794     }
58795 #endif
58796 
58797 
58798 
58799   public:
58800     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
58801     const void* pNext = {};
58802     uint32_t groupCount = {};
58803     const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups = {};
58804     uint32_t pipelineCount = {};
58805     const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines = {};
58806 
58807   };
58808   static_assert( sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) == sizeof( VkGraphicsPipelineShaderGroupsCreateInfoNV ), "struct and wrapper have different size!" );
58809   static_assert( std::is_standard_layout<GraphicsPipelineShaderGroupsCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
58810 
58811   template <>
58812   struct CppType<StructureType, StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV>
58813   {
58814     using Type = GraphicsPipelineShaderGroupsCreateInfoNV;
58815   };
58816 
58817   struct HeadlessSurfaceCreateInfoEXT
58818   {
58819     static const bool allowDuplicate = false;
58820     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT;
58821 
58822 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58823     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT
58824     : flags( flags_ )
58825     {}
58826 
58827     VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58828 
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58829     HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58830     {
58831       *this = rhs;
58832     }
58833 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58834 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58835     HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58836     {
58837       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const *>( &rhs );
58838       return *this;
58839     }
58840 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58841     HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
58842     {
58843       memcpy( static_cast<void *>( this ), &rhs, sizeof( HeadlessSurfaceCreateInfoEXT ) );
58844       return *this;
58845     }
58846 
setPNextVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58847     HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58848     {
58849       pNext = pNext_;
58850       return *this;
58851     }
58852 
setFlagsVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58853     HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
58854     {
58855       flags = flags_;
58856       return *this;
58857     }
58858 
58859 
operator VkHeadlessSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58860     operator VkHeadlessSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
58861     {
58862       return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( this );
58863     }
58864 
operator VkHeadlessSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58865     operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
58866     {
58867       return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>( this );
58868     }
58869 
58870 
58871 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58872     auto operator<=>( HeadlessSurfaceCreateInfoEXT const& ) const = default;
58873 #else
operator ==VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58874     bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58875     {
58876       return ( sType == rhs.sType )
58877           && ( pNext == rhs.pNext )
58878           && ( flags == rhs.flags );
58879     }
58880 
operator !=VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT58881     bool operator!=( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
58882     {
58883       return !operator==( rhs );
58884     }
58885 #endif
58886 
58887 
58888 
58889   public:
58890     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT;
58891     const void* pNext = {};
58892     VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {};
58893 
58894   };
58895   static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
58896   static_assert( std::is_standard_layout<HeadlessSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
58897 
58898   template <>
58899   struct CppType<StructureType, StructureType::eHeadlessSurfaceCreateInfoEXT>
58900   {
58901     using Type = HeadlessSurfaceCreateInfoEXT;
58902   };
58903 
58904 #ifdef VK_USE_PLATFORM_IOS_MVK
58905   struct IOSSurfaceCreateInfoMVK
58906   {
58907     static const bool allowDuplicate = false;
58908     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK;
58909 
58910 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58911     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT
58912     : flags( flags_ ), pView( pView_ )
58913     {}
58914 
58915     VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
58916 
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58917     IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
58918     {
58919       *this = rhs;
58920     }
58921 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
58922 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58923     IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
58924     {
58925       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const *>( &rhs );
58926       return *this;
58927     }
58928 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58929     IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
58930     {
58931       memcpy( static_cast<void *>( this ), &rhs, sizeof( IOSSurfaceCreateInfoMVK ) );
58932       return *this;
58933     }
58934 
setPNextVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58935     IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
58936     {
58937       pNext = pNext_;
58938       return *this;
58939     }
58940 
setFlagsVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58941     IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
58942     {
58943       flags = flags_;
58944       return *this;
58945     }
58946 
setPViewVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58947     IOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
58948     {
58949       pView = pView_;
58950       return *this;
58951     }
58952 
58953 
operator VkIOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58954     operator VkIOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
58955     {
58956       return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( this );
58957     }
58958 
operator VkIOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58959     operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
58960     {
58961       return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>( this );
58962     }
58963 
58964 
58965 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
58966     auto operator<=>( IOSSurfaceCreateInfoMVK const& ) const = default;
58967 #else
operator ==VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58968     bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
58969     {
58970       return ( sType == rhs.sType )
58971           && ( pNext == rhs.pNext )
58972           && ( flags == rhs.flags )
58973           && ( pView == rhs.pView );
58974     }
58975 
operator !=VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK58976     bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
58977     {
58978       return !operator==( rhs );
58979     }
58980 #endif
58981 
58982 
58983 
58984   public:
58985     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
58986     const void* pNext = {};
58987     VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {};
58988     const void* pView = {};
58989 
58990   };
58991   static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
58992   static_assert( std::is_standard_layout<IOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
58993 
58994   template <>
58995   struct CppType<StructureType, StructureType::eIosSurfaceCreateInfoMVK>
58996   {
58997     using Type = IOSSurfaceCreateInfoMVK;
58998   };
58999 #endif /*VK_USE_PLATFORM_IOS_MVK*/
59000 
59001   struct ImageDrmFormatModifierExplicitCreateInfoEXT
59002   {
59003     static const bool allowDuplicate = false;
59004     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
59005 
59006 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59007     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ = {}) VULKAN_HPP_NOEXCEPT
59008     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), pPlaneLayouts( pPlaneLayouts_ )
59009     {}
59010 
59011     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59012 
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59013     ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59014     {
59015       *this = rhs;
59016     }
59017 
59018 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59019     ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ )
59020     : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( static_cast<uint32_t>( planeLayouts_.size() ) ), pPlaneLayouts( planeLayouts_.data() )
59021     {}
59022 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59023 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59024 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59025     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59026     {
59027       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs );
59028       return *this;
59029     }
59030 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59031     ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59032     {
59033       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) );
59034       return *this;
59035     }
59036 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59037     ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59038     {
59039       pNext = pNext_;
59040       return *this;
59041     }
59042 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59043     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
59044     {
59045       drmFormatModifier = drmFormatModifier_;
59046       return *this;
59047     }
59048 
setDrmFormatModifierPlaneCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59049     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
59050     {
59051       drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
59052       return *this;
59053     }
59054 
setPPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59055     ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
59056     {
59057       pPlaneLayouts = pPlaneLayouts_;
59058       return *this;
59059     }
59060 
59061 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59062     ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ ) VULKAN_HPP_NOEXCEPT
59063     {
59064       drmFormatModifierPlaneCount = static_cast<uint32_t>( planeLayouts_.size() );
59065       pPlaneLayouts = planeLayouts_.data();
59066       return *this;
59067     }
59068 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59069 
59070 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59071     operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
59072     {
59073       return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
59074     }
59075 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59076     operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
59077     {
59078       return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
59079     }
59080 
59081 
59082 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59083     auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const& ) const = default;
59084 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59085     bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59086     {
59087       return ( sType == rhs.sType )
59088           && ( pNext == rhs.pNext )
59089           && ( drmFormatModifier == rhs.drmFormatModifier )
59090           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
59091           && ( pPlaneLayouts == rhs.pPlaneLayouts );
59092     }
59093 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT59094     bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59095     {
59096       return !operator==( rhs );
59097     }
59098 #endif
59099 
59100 
59101 
59102   public:
59103     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
59104     const void* pNext = {};
59105     uint64_t drmFormatModifier = {};
59106     uint32_t drmFormatModifierPlaneCount = {};
59107     const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts = {};
59108 
59109   };
59110   static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" );
59111   static_assert( std::is_standard_layout<ImageDrmFormatModifierExplicitCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
59112 
59113   template <>
59114   struct CppType<StructureType, StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT>
59115   {
59116     using Type = ImageDrmFormatModifierExplicitCreateInfoEXT;
59117   };
59118 
59119   struct ImageDrmFormatModifierListCreateInfoEXT
59120   {
59121     static const bool allowDuplicate = false;
59122     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
59123 
59124 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59125     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT(uint32_t drmFormatModifierCount_ = {}, const uint64_t* pDrmFormatModifiers_ = {}) VULKAN_HPP_NOEXCEPT
59126     : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifiers( pDrmFormatModifiers_ )
59127     {}
59128 
59129     VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59130 
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59131     ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59132     {
59133       *this = rhs;
59134     }
59135 
59136 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59137     ImageDrmFormatModifierListCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ )
59138     : drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifiers_.size() ) ), pDrmFormatModifiers( drmFormatModifiers_.data() )
59139     {}
59140 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59141 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59142 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59143     ImageDrmFormatModifierListCreateInfoEXT & operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59144     {
59145       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs );
59146       return *this;
59147     }
59148 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59149     ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59150     {
59151       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageDrmFormatModifierListCreateInfoEXT ) );
59152       return *this;
59153     }
59154 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59155     ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59156     {
59157       pNext = pNext_;
59158       return *this;
59159     }
59160 
setDrmFormatModifierCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59161     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT
59162     {
59163       drmFormatModifierCount = drmFormatModifierCount_;
59164       return *this;
59165     }
59166 
setPDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59167     ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
59168     {
59169       pDrmFormatModifiers = pDrmFormatModifiers_;
59170       return *this;
59171     }
59172 
59173 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59174     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
59175     {
59176       drmFormatModifierCount = static_cast<uint32_t>( drmFormatModifiers_.size() );
59177       pDrmFormatModifiers = drmFormatModifiers_.data();
59178       return *this;
59179     }
59180 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59181 
59182 
operator VkImageDrmFormatModifierListCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59183     operator VkImageDrmFormatModifierListCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
59184     {
59185       return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>( this );
59186     }
59187 
operator VkImageDrmFormatModifierListCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59188     operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
59189     {
59190       return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>( this );
59191     }
59192 
59193 
59194 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59195     auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const& ) const = default;
59196 #else
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59197     bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59198     {
59199       return ( sType == rhs.sType )
59200           && ( pNext == rhs.pNext )
59201           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
59202           && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
59203     }
59204 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT59205     bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59206     {
59207       return !operator==( rhs );
59208     }
59209 #endif
59210 
59211 
59212 
59213   public:
59214     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
59215     const void* pNext = {};
59216     uint32_t drmFormatModifierCount = {};
59217     const uint64_t* pDrmFormatModifiers = {};
59218 
59219   };
59220   static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" );
59221   static_assert( std::is_standard_layout<ImageDrmFormatModifierListCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
59222 
59223   template <>
59224   struct CppType<StructureType, StructureType::eImageDrmFormatModifierListCreateInfoEXT>
59225   {
59226     using Type = ImageDrmFormatModifierListCreateInfoEXT;
59227   };
59228 
59229   struct ImageFormatListCreateInfo
59230   {
59231     static const bool allowDuplicate = false;
59232     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo;
59233 
59234 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59235     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo(uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {}) VULKAN_HPP_NOEXCEPT
59236     : viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ )
59237     {}
59238 
59239     VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59240 
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59241     ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59242     {
59243       *this = rhs;
59244     }
59245 
59246 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ImageFormatListCreateInfoVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59247     ImageFormatListCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ )
59248     : viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
59249     {}
59250 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59251 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59252 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59253     ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59254     {
59255       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const *>( &rhs );
59256       return *this;
59257     }
59258 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59259     ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59260     {
59261       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageFormatListCreateInfo ) );
59262       return *this;
59263     }
59264 
setPNextVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59265     ImageFormatListCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59266     {
59267       pNext = pNext_;
59268       return *this;
59269     }
59270 
setViewFormatCountVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59271     ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
59272     {
59273       viewFormatCount = viewFormatCount_;
59274       return *this;
59275     }
59276 
setPViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59277     ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT
59278     {
59279       pViewFormats = pViewFormats_;
59280       return *this;
59281     }
59282 
59283 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59284     ImageFormatListCreateInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
59285     {
59286       viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
59287       pViewFormats = viewFormats_.data();
59288       return *this;
59289     }
59290 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
59291 
59292 
operator VkImageFormatListCreateInfo const&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59293     operator VkImageFormatListCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59294     {
59295       return *reinterpret_cast<const VkImageFormatListCreateInfo*>( this );
59296     }
59297 
operator VkImageFormatListCreateInfo&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59298     operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
59299     {
59300       return *reinterpret_cast<VkImageFormatListCreateInfo*>( this );
59301     }
59302 
59303 
59304 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59305     auto operator<=>( ImageFormatListCreateInfo const& ) const = default;
59306 #else
operator ==VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59307     bool operator==( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59308     {
59309       return ( sType == rhs.sType )
59310           && ( pNext == rhs.pNext )
59311           && ( viewFormatCount == rhs.viewFormatCount )
59312           && ( pViewFormats == rhs.pViewFormats );
59313     }
59314 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo59315     bool operator!=( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59316     {
59317       return !operator==( rhs );
59318     }
59319 #endif
59320 
59321 
59322 
59323   public:
59324     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo;
59325     const void* pNext = {};
59326     uint32_t viewFormatCount = {};
59327     const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {};
59328 
59329   };
59330   static_assert( sizeof( ImageFormatListCreateInfo ) == sizeof( VkImageFormatListCreateInfo ), "struct and wrapper have different size!" );
59331   static_assert( std::is_standard_layout<ImageFormatListCreateInfo>::value, "struct wrapper is not a standard layout!" );
59332 
59333   template <>
59334   struct CppType<StructureType, StructureType::eImageFormatListCreateInfo>
59335   {
59336     using Type = ImageFormatListCreateInfo;
59337   };
59338   using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
59339 
59340 #ifdef VK_USE_PLATFORM_FUCHSIA
59341   struct ImagePipeSurfaceCreateInfoFUCHSIA
59342   {
59343     static const bool allowDuplicate = false;
59344     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
59345 
59346 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59347     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {}, zx_handle_t imagePipeHandle_ = {}) VULKAN_HPP_NOEXCEPT
59348     : flags( flags_ ), imagePipeHandle( imagePipeHandle_ )
59349     {}
59350 
59351     VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59352 
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59353     ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
59354     {
59355       *this = rhs;
59356     }
59357 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59358 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59359     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
59360     {
59361       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs );
59362       return *this;
59363     }
59364 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59365     ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
59366     {
59367       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) );
59368       return *this;
59369     }
59370 
setPNextVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59371     ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59372     {
59373       pNext = pNext_;
59374       return *this;
59375     }
59376 
setFlagsVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59377     ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
59378     {
59379       flags = flags_;
59380       return *this;
59381     }
59382 
setImagePipeHandleVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59383     ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT
59384     {
59385       imagePipeHandle = imagePipeHandle_;
59386       return *this;
59387     }
59388 
59389 
operator VkImagePipeSurfaceCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59390     operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const VULKAN_HPP_NOEXCEPT
59391     {
59392       return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
59393     }
59394 
operator VkImagePipeSurfaceCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59395     operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
59396     {
59397       return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
59398     }
59399 
59400 
59401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59402     auto operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const& ) const = default;
59403 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59404     bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
59405     {
59406       return ( sType == rhs.sType )
59407           && ( pNext == rhs.pNext )
59408           && ( flags == rhs.flags )
59409           && ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 );
59410     }
59411 
operator !=VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA59412     bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT
59413     {
59414       return !operator==( rhs );
59415     }
59416 #endif
59417 
59418 
59419 
59420   public:
59421     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
59422     const void* pNext = {};
59423     VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {};
59424     zx_handle_t imagePipeHandle = {};
59425 
59426   };
59427   static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" );
59428   static_assert( std::is_standard_layout<ImagePipeSurfaceCreateInfoFUCHSIA>::value, "struct wrapper is not a standard layout!" );
59429 
59430   template <>
59431   struct CppType<StructureType, StructureType::eImagepipeSurfaceCreateInfoFUCHSIA>
59432   {
59433     using Type = ImagePipeSurfaceCreateInfoFUCHSIA;
59434   };
59435 #endif /*VK_USE_PLATFORM_FUCHSIA*/
59436 
59437   struct ImagePlaneMemoryRequirementsInfo
59438   {
59439     static const bool allowDuplicate = false;
59440     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo;
59441 
59442 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59443     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT
59444     : planeAspect( planeAspect_ )
59445     {}
59446 
59447     VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59448 
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59449     ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59450     {
59451       *this = rhs;
59452     }
59453 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59454 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59455     ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59456     {
59457       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const *>( &rhs );
59458       return *this;
59459     }
59460 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59461     ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59462     {
59463       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImagePlaneMemoryRequirementsInfo ) );
59464       return *this;
59465     }
59466 
setPNextVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59467     ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59468     {
59469       pNext = pNext_;
59470       return *this;
59471     }
59472 
setPlaneAspectVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59473     ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
59474     {
59475       planeAspect = planeAspect_;
59476       return *this;
59477     }
59478 
59479 
operator VkImagePlaneMemoryRequirementsInfo const&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59480     operator VkImagePlaneMemoryRequirementsInfo const&() const VULKAN_HPP_NOEXCEPT
59481     {
59482       return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>( this );
59483     }
59484 
operator VkImagePlaneMemoryRequirementsInfo&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59485     operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
59486     {
59487       return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>( this );
59488     }
59489 
59490 
59491 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59492     auto operator<=>( ImagePlaneMemoryRequirementsInfo const& ) const = default;
59493 #else
operator ==VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59494     bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59495     {
59496       return ( sType == rhs.sType )
59497           && ( pNext == rhs.pNext )
59498           && ( planeAspect == rhs.planeAspect );
59499     }
59500 
operator !=VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo59501     bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59502     {
59503       return !operator==( rhs );
59504     }
59505 #endif
59506 
59507 
59508 
59509   public:
59510     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
59511     const void* pNext = {};
59512     VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
59513 
59514   };
59515   static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" );
59516   static_assert( std::is_standard_layout<ImagePlaneMemoryRequirementsInfo>::value, "struct wrapper is not a standard layout!" );
59517 
59518   template <>
59519   struct CppType<StructureType, StructureType::eImagePlaneMemoryRequirementsInfo>
59520   {
59521     using Type = ImagePlaneMemoryRequirementsInfo;
59522   };
59523   using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
59524 
59525   struct ImageStencilUsageCreateInfo
59526   {
59527     static const bool allowDuplicate = false;
59528     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo;
59529 
59530 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59531     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {}) VULKAN_HPP_NOEXCEPT
59532     : stencilUsage( stencilUsage_ )
59533     {}
59534 
59535     VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59536 
ImageStencilUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59537     ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59538     {
59539       *this = rhs;
59540     }
59541 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59542 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59543     ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59544     {
59545       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const *>( &rhs );
59546       return *this;
59547     }
59548 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59549     ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59550     {
59551       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageStencilUsageCreateInfo ) );
59552       return *this;
59553     }
59554 
setPNextVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59555     ImageStencilUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59556     {
59557       pNext = pNext_;
59558       return *this;
59559     }
59560 
setStencilUsageVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59561     ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT
59562     {
59563       stencilUsage = stencilUsage_;
59564       return *this;
59565     }
59566 
59567 
operator VkImageStencilUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59568     operator VkImageStencilUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59569     {
59570       return *reinterpret_cast<const VkImageStencilUsageCreateInfo*>( this );
59571     }
59572 
operator VkImageStencilUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59573     operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
59574     {
59575       return *reinterpret_cast<VkImageStencilUsageCreateInfo*>( this );
59576     }
59577 
59578 
59579 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59580     auto operator<=>( ImageStencilUsageCreateInfo const& ) const = default;
59581 #else
operator ==VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59582     bool operator==( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59583     {
59584       return ( sType == rhs.sType )
59585           && ( pNext == rhs.pNext )
59586           && ( stencilUsage == rhs.stencilUsage );
59587     }
59588 
operator !=VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo59589     bool operator!=( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59590     {
59591       return !operator==( rhs );
59592     }
59593 #endif
59594 
59595 
59596 
59597   public:
59598     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo;
59599     const void* pNext = {};
59600     VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {};
59601 
59602   };
59603   static_assert( sizeof( ImageStencilUsageCreateInfo ) == sizeof( VkImageStencilUsageCreateInfo ), "struct and wrapper have different size!" );
59604   static_assert( std::is_standard_layout<ImageStencilUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
59605 
59606   template <>
59607   struct CppType<StructureType, StructureType::eImageStencilUsageCreateInfo>
59608   {
59609     using Type = ImageStencilUsageCreateInfo;
59610   };
59611   using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
59612 
59613   struct ImageSwapchainCreateInfoKHR
59614   {
59615     static const bool allowDuplicate = false;
59616     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR;
59617 
59618 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59619     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}) VULKAN_HPP_NOEXCEPT
59620     : swapchain( swapchain_ )
59621     {}
59622 
59623     VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59624 
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59625     ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59626     {
59627       *this = rhs;
59628     }
59629 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59630 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59631     ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59632     {
59633       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const *>( &rhs );
59634       return *this;
59635     }
59636 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59637     ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59638     {
59639       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageSwapchainCreateInfoKHR ) );
59640       return *this;
59641     }
59642 
setPNextVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59643     ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59644     {
59645       pNext = pNext_;
59646       return *this;
59647     }
59648 
setSwapchainVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59649     ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
59650     {
59651       swapchain = swapchain_;
59652       return *this;
59653     }
59654 
59655 
operator VkImageSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59656     operator VkImageSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
59657     {
59658       return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>( this );
59659     }
59660 
operator VkImageSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59661     operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
59662     {
59663       return *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>( this );
59664     }
59665 
59666 
59667 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59668     auto operator<=>( ImageSwapchainCreateInfoKHR const& ) const = default;
59669 #else
operator ==VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59670     bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59671     {
59672       return ( sType == rhs.sType )
59673           && ( pNext == rhs.pNext )
59674           && ( swapchain == rhs.swapchain );
59675     }
59676 
operator !=VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR59677     bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
59678     {
59679       return !operator==( rhs );
59680     }
59681 #endif
59682 
59683 
59684 
59685   public:
59686     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
59687     const void* pNext = {};
59688     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
59689 
59690   };
59691   static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
59692   static_assert( std::is_standard_layout<ImageSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
59693 
59694   template <>
59695   struct CppType<StructureType, StructureType::eImageSwapchainCreateInfoKHR>
59696   {
59697     using Type = ImageSwapchainCreateInfoKHR;
59698   };
59699 
59700   struct ImageViewASTCDecodeModeEXT
59701   {
59702     static const bool allowDuplicate = false;
59703     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT;
59704 
59705 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59706     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT(VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT
59707     : decodeMode( decodeMode_ )
59708     {}
59709 
59710     VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59711 
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59712     ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59713     {
59714       *this = rhs;
59715     }
59716 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59717 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59718     ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59719     {
59720       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const *>( &rhs );
59721       return *this;
59722     }
59723 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59724     ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
59725     {
59726       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewASTCDecodeModeEXT ) );
59727       return *this;
59728     }
59729 
setPNextVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59730     ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59731     {
59732       pNext = pNext_;
59733       return *this;
59734     }
59735 
setDecodeModeVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59736     ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT
59737     {
59738       decodeMode = decodeMode_;
59739       return *this;
59740     }
59741 
59742 
operator VkImageViewASTCDecodeModeEXT const&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59743     operator VkImageViewASTCDecodeModeEXT const&() const VULKAN_HPP_NOEXCEPT
59744     {
59745       return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>( this );
59746     }
59747 
operator VkImageViewASTCDecodeModeEXT&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59748     operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
59749     {
59750       return *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>( this );
59751     }
59752 
59753 
59754 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59755     auto operator<=>( ImageViewASTCDecodeModeEXT const& ) const = default;
59756 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59757     bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59758     {
59759       return ( sType == rhs.sType )
59760           && ( pNext == rhs.pNext )
59761           && ( decodeMode == rhs.decodeMode );
59762     }
59763 
operator !=VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT59764     bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
59765     {
59766       return !operator==( rhs );
59767     }
59768 #endif
59769 
59770 
59771 
59772   public:
59773     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT;
59774     const void* pNext = {};
59775     VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined;
59776 
59777   };
59778   static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" );
59779   static_assert( std::is_standard_layout<ImageViewASTCDecodeModeEXT>::value, "struct wrapper is not a standard layout!" );
59780 
59781   template <>
59782   struct CppType<StructureType, StructureType::eImageViewAstcDecodeModeEXT>
59783   {
59784     using Type = ImageViewASTCDecodeModeEXT;
59785   };
59786 
59787   struct ImageViewUsageCreateInfo
59788   {
59789     static const bool allowDuplicate = false;
59790     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo;
59791 
59792 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59793     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}) VULKAN_HPP_NOEXCEPT
59794     : usage( usage_ )
59795     {}
59796 
59797     VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59798 
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59799     ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59800     {
59801       *this = rhs;
59802     }
59803 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59804 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59805     ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59806     {
59807       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const *>( &rhs );
59808       return *this;
59809     }
59810 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59811     ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
59812     {
59813       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImageViewUsageCreateInfo ) );
59814       return *this;
59815     }
59816 
setPNextVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59817     ImageViewUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59818     {
59819       pNext = pNext_;
59820       return *this;
59821     }
59822 
setUsageVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59823     ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
59824     {
59825       usage = usage_;
59826       return *this;
59827     }
59828 
59829 
operator VkImageViewUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59830     operator VkImageViewUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT
59831     {
59832       return *reinterpret_cast<const VkImageViewUsageCreateInfo*>( this );
59833     }
59834 
operator VkImageViewUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59835     operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
59836     {
59837       return *reinterpret_cast<VkImageViewUsageCreateInfo*>( this );
59838     }
59839 
59840 
59841 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59842     auto operator<=>( ImageViewUsageCreateInfo const& ) const = default;
59843 #else
operator ==VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59844     bool operator==( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59845     {
59846       return ( sType == rhs.sType )
59847           && ( pNext == rhs.pNext )
59848           && ( usage == rhs.usage );
59849     }
59850 
operator !=VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo59851     bool operator!=( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
59852     {
59853       return !operator==( rhs );
59854     }
59855 #endif
59856 
59857 
59858 
59859   public:
59860     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo;
59861     const void* pNext = {};
59862     VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
59863 
59864   };
59865   static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" );
59866   static_assert( std::is_standard_layout<ImageViewUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
59867 
59868   template <>
59869   struct CppType<StructureType, StructureType::eImageViewUsageCreateInfo>
59870   {
59871     using Type = ImageViewUsageCreateInfo;
59872   };
59873   using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
59874 
59875 #ifdef VK_USE_PLATFORM_ANDROID_KHR
59876   struct ImportAndroidHardwareBufferInfoANDROID
59877   {
59878     static const bool allowDuplicate = false;
59879     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
59880 
59881 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59882     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID(struct AHardwareBuffer* buffer_ = {}) VULKAN_HPP_NOEXCEPT
59883     : buffer( buffer_ )
59884     {}
59885 
59886     VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59887 
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59888     ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59889     {
59890       *this = rhs;
59891     }
59892 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59893 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59894     ImportAndroidHardwareBufferInfoANDROID & operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59895     {
59896       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const *>( &rhs );
59897       return *this;
59898     }
59899 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59900     ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
59901     {
59902       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportAndroidHardwareBufferInfoANDROID ) );
59903       return *this;
59904     }
59905 
setPNextVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59906     ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59907     {
59908       pNext = pNext_;
59909       return *this;
59910     }
59911 
setBufferVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59912     ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ ) VULKAN_HPP_NOEXCEPT
59913     {
59914       buffer = buffer_;
59915       return *this;
59916     }
59917 
59918 
operator VkImportAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59919     operator VkImportAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT
59920     {
59921       return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>( this );
59922     }
59923 
operator VkImportAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59924     operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
59925     {
59926       return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>( this );
59927     }
59928 
59929 
59930 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
59931     auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const& ) const = default;
59932 #else
operator ==VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59933     bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
59934     {
59935       return ( sType == rhs.sType )
59936           && ( pNext == rhs.pNext )
59937           && ( buffer == rhs.buffer );
59938     }
59939 
operator !=VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID59940     bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT
59941     {
59942       return !operator==( rhs );
59943     }
59944 #endif
59945 
59946 
59947 
59948   public:
59949     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
59950     const void* pNext = {};
59951     struct AHardwareBuffer* buffer = {};
59952 
59953   };
59954   static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
59955   static_assert( std::is_standard_layout<ImportAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
59956 
59957   template <>
59958   struct CppType<StructureType, StructureType::eImportAndroidHardwareBufferInfoANDROID>
59959   {
59960     using Type = ImportAndroidHardwareBufferInfoANDROID;
59961   };
59962 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
59963 
59964   struct ImportMemoryFdInfoKHR
59965   {
59966     static const bool allowDuplicate = false;
59967     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR;
59968 
59969 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59970     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT
59971     : handleType( handleType_ ), fd( fd_ )
59972     {}
59973 
59974     VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
59975 
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59976     ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59977     {
59978       *this = rhs;
59979     }
59980 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
59981 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59982     ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59983     {
59984       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const *>( &rhs );
59985       return *this;
59986     }
59987 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59988     ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
59989     {
59990       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryFdInfoKHR ) );
59991       return *this;
59992     }
59993 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR59994     ImportMemoryFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
59995     {
59996       pNext = pNext_;
59997       return *this;
59998     }
59999 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60000     ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
60001     {
60002       handleType = handleType_;
60003       return *this;
60004     }
60005 
setFdVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60006     ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
60007     {
60008       fd = fd_;
60009       return *this;
60010     }
60011 
60012 
operator VkImportMemoryFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60013     operator VkImportMemoryFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT
60014     {
60015       return *reinterpret_cast<const VkImportMemoryFdInfoKHR*>( this );
60016     }
60017 
operator VkImportMemoryFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60018     operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
60019     {
60020       return *reinterpret_cast<VkImportMemoryFdInfoKHR*>( this );
60021     }
60022 
60023 
60024 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60025     auto operator<=>( ImportMemoryFdInfoKHR const& ) const = default;
60026 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60027     bool operator==( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60028     {
60029       return ( sType == rhs.sType )
60030           && ( pNext == rhs.pNext )
60031           && ( handleType == rhs.handleType )
60032           && ( fd == rhs.fd );
60033     }
60034 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR60035     bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60036     {
60037       return !operator==( rhs );
60038     }
60039 #endif
60040 
60041 
60042 
60043   public:
60044     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR;
60045     const void* pNext = {};
60046     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
60047     int fd = {};
60048 
60049   };
60050   static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" );
60051   static_assert( std::is_standard_layout<ImportMemoryFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
60052 
60053   template <>
60054   struct CppType<StructureType, StructureType::eImportMemoryFdInfoKHR>
60055   {
60056     using Type = ImportMemoryFdInfoKHR;
60057   };
60058 
60059   struct ImportMemoryHostPointerInfoEXT
60060   {
60061     static const bool allowDuplicate = false;
60062     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT;
60063 
60064 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60065     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, void* pHostPointer_ = {}) VULKAN_HPP_NOEXCEPT
60066     : handleType( handleType_ ), pHostPointer( pHostPointer_ )
60067     {}
60068 
60069     VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60070 
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60071     ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60072     {
60073       *this = rhs;
60074     }
60075 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60076 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60077     ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60078     {
60079       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const *>( &rhs );
60080       return *this;
60081     }
60082 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60083     ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
60084     {
60085       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryHostPointerInfoEXT ) );
60086       return *this;
60087     }
60088 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60089     ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60090     {
60091       pNext = pNext_;
60092       return *this;
60093     }
60094 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60095     ImportMemoryHostPointerInfoEXT & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
60096     {
60097       handleType = handleType_;
60098       return *this;
60099     }
60100 
setPHostPointerVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60101     ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ ) VULKAN_HPP_NOEXCEPT
60102     {
60103       pHostPointer = pHostPointer_;
60104       return *this;
60105     }
60106 
60107 
operator VkImportMemoryHostPointerInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60108     operator VkImportMemoryHostPointerInfoEXT const&() const VULKAN_HPP_NOEXCEPT
60109     {
60110       return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>( this );
60111     }
60112 
operator VkImportMemoryHostPointerInfoEXT&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60113     operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
60114     {
60115       return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>( this );
60116     }
60117 
60118 
60119 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60120     auto operator<=>( ImportMemoryHostPointerInfoEXT const& ) const = default;
60121 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60122     bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60123     {
60124       return ( sType == rhs.sType )
60125           && ( pNext == rhs.pNext )
60126           && ( handleType == rhs.handleType )
60127           && ( pHostPointer == rhs.pHostPointer );
60128     }
60129 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT60130     bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
60131     {
60132       return !operator==( rhs );
60133     }
60134 #endif
60135 
60136 
60137 
60138   public:
60139     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
60140     const void* pNext = {};
60141     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
60142     void* pHostPointer = {};
60143 
60144   };
60145   static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" );
60146   static_assert( std::is_standard_layout<ImportMemoryHostPointerInfoEXT>::value, "struct wrapper is not a standard layout!" );
60147 
60148   template <>
60149   struct CppType<StructureType, StructureType::eImportMemoryHostPointerInfoEXT>
60150   {
60151     using Type = ImportMemoryHostPointerInfoEXT;
60152   };
60153 
60154 #ifdef VK_USE_PLATFORM_WIN32_KHR
60155   struct ImportMemoryWin32HandleInfoKHR
60156   {
60157     static const bool allowDuplicate = false;
60158     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR;
60159 
60160 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60161     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT
60162     : handleType( handleType_ ), handle( handle_ ), name( name_ )
60163     {}
60164 
60165     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60166 
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60167     ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60168     {
60169       *this = rhs;
60170     }
60171 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60172 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60173     ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60174     {
60175       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const *>( &rhs );
60176       return *this;
60177     }
60178 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60179     ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
60180     {
60181       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryWin32HandleInfoKHR ) );
60182       return *this;
60183     }
60184 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60185     ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60186     {
60187       pNext = pNext_;
60188       return *this;
60189     }
60190 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60191     ImportMemoryWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
60192     {
60193       handleType = handleType_;
60194       return *this;
60195     }
60196 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60197     ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
60198     {
60199       handle = handle_;
60200       return *this;
60201     }
60202 
setNameVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60203     ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
60204     {
60205       name = name_;
60206       return *this;
60207     }
60208 
60209 
operator VkImportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60210     operator VkImportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT
60211     {
60212       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>( this );
60213     }
60214 
operator VkImportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60215     operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
60216     {
60217       return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>( this );
60218     }
60219 
60220 
60221 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60222     auto operator<=>( ImportMemoryWin32HandleInfoKHR const& ) const = default;
60223 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60224     bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60225     {
60226       return ( sType == rhs.sType )
60227           && ( pNext == rhs.pNext )
60228           && ( handleType == rhs.handleType )
60229           && ( handle == rhs.handle )
60230           && ( name == rhs.name );
60231     }
60232 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR60233     bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
60234     {
60235       return !operator==( rhs );
60236     }
60237 #endif
60238 
60239 
60240 
60241   public:
60242     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
60243     const void* pNext = {};
60244     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
60245     HANDLE handle = {};
60246     LPCWSTR name = {};
60247 
60248   };
60249   static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
60250   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
60251 
60252   template <>
60253   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoKHR>
60254   {
60255     using Type = ImportMemoryWin32HandleInfoKHR;
60256   };
60257 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
60258 
60259 #ifdef VK_USE_PLATFORM_WIN32_KHR
60260   struct ImportMemoryWin32HandleInfoNV
60261   {
60262     static const bool allowDuplicate = false;
60263     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV;
60264 
60265 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60266     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {}, HANDLE handle_ = {}) VULKAN_HPP_NOEXCEPT
60267     : handleType( handleType_ ), handle( handle_ )
60268     {}
60269 
60270     VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60271 
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60272     ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
60273     {
60274       *this = rhs;
60275     }
60276 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60277 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60278     ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
60279     {
60280       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const *>( &rhs );
60281       return *this;
60282     }
60283 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60284     ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
60285     {
60286       memcpy( static_cast<void *>( this ), &rhs, sizeof( ImportMemoryWin32HandleInfoNV ) );
60287       return *this;
60288     }
60289 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60290     ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60291     {
60292       pNext = pNext_;
60293       return *this;
60294     }
60295 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60296     ImportMemoryWin32HandleInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
60297     {
60298       handleType = handleType_;
60299       return *this;
60300     }
60301 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60302     ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
60303     {
60304       handle = handle_;
60305       return *this;
60306     }
60307 
60308 
operator VkImportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60309     operator VkImportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT
60310     {
60311       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>( this );
60312     }
60313 
operator VkImportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60314     operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
60315     {
60316       return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>( this );
60317     }
60318 
60319 
60320 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60321     auto operator<=>( ImportMemoryWin32HandleInfoNV const& ) const = default;
60322 #else
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60323     bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
60324     {
60325       return ( sType == rhs.sType )
60326           && ( pNext == rhs.pNext )
60327           && ( handleType == rhs.handleType )
60328           && ( handle == rhs.handle );
60329     }
60330 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV60331     bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
60332     {
60333       return !operator==( rhs );
60334     }
60335 #endif
60336 
60337 
60338 
60339   public:
60340     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
60341     const void* pNext = {};
60342     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {};
60343     HANDLE handle = {};
60344 
60345   };
60346   static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
60347   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
60348 
60349   template <>
60350   struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoNV>
60351   {
60352     using Type = ImportMemoryWin32HandleInfoNV;
60353   };
60354 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
60355 
60356   struct InputAttachmentAspectReference
60357   {
60358 
60359 
60360 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60361     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference(uint32_t subpass_ = {}, uint32_t inputAttachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT
60362     : subpass( subpass_ ), inputAttachmentIndex( inputAttachmentIndex_ ), aspectMask( aspectMask_ )
60363     {}
60364 
60365     VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60366 
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60367     InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
60368     {
60369       *this = rhs;
60370     }
60371 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60372 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60373     InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
60374     {
60375       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const *>( &rhs );
60376       return *this;
60377     }
60378 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60379     InputAttachmentAspectReference & operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
60380     {
60381       memcpy( static_cast<void *>( this ), &rhs, sizeof( InputAttachmentAspectReference ) );
60382       return *this;
60383     }
60384 
setSubpassVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60385     InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
60386     {
60387       subpass = subpass_;
60388       return *this;
60389     }
60390 
setInputAttachmentIndexVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60391     InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT
60392     {
60393       inputAttachmentIndex = inputAttachmentIndex_;
60394       return *this;
60395     }
60396 
setAspectMaskVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60397     InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
60398     {
60399       aspectMask = aspectMask_;
60400       return *this;
60401     }
60402 
60403 
operator VkInputAttachmentAspectReference const&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60404     operator VkInputAttachmentAspectReference const&() const VULKAN_HPP_NOEXCEPT
60405     {
60406       return *reinterpret_cast<const VkInputAttachmentAspectReference*>( this );
60407     }
60408 
operator VkInputAttachmentAspectReference&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60409     operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
60410     {
60411       return *reinterpret_cast<VkInputAttachmentAspectReference*>( this );
60412     }
60413 
60414 
60415 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60416     auto operator<=>( InputAttachmentAspectReference const& ) const = default;
60417 #else
operator ==VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60418     bool operator==( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
60419     {
60420       return ( subpass == rhs.subpass )
60421           && ( inputAttachmentIndex == rhs.inputAttachmentIndex )
60422           && ( aspectMask == rhs.aspectMask );
60423     }
60424 
operator !=VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference60425     bool operator!=( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT
60426     {
60427       return !operator==( rhs );
60428     }
60429 #endif
60430 
60431 
60432 
60433   public:
60434     uint32_t subpass = {};
60435     uint32_t inputAttachmentIndex = {};
60436     VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
60437 
60438   };
60439   static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" );
60440   static_assert( std::is_standard_layout<InputAttachmentAspectReference>::value, "struct wrapper is not a standard layout!" );
60441   using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
60442 
60443   struct InstanceCreateInfo
60444   {
60445     static const bool allowDuplicate = false;
60446     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo;
60447 
60448 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60449     VULKAN_HPP_CONSTEXPR InstanceCreateInfo(VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ = {}, uint32_t enabledLayerCount_ = {}, const char* const * ppEnabledLayerNames_ = {}, uint32_t enabledExtensionCount_ = {}, const char* const * ppEnabledExtensionNames_ = {}) VULKAN_HPP_NOEXCEPT
60450     : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ )
60451     {}
60452 
60453     VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60454 
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60455     InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60456     {
60457       *this = rhs;
60458     }
60459 
60460 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60461     InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_, const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ = {} )
60462     : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
60463     {}
60464 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
60465 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60466 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo60467     InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60468     {
60469       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InstanceCreateInfo const *>( &rhs );
60470       return *this;
60471     }
60472 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo60473     InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60474     {
60475       memcpy( static_cast<void *>( this ), &rhs, sizeof( InstanceCreateInfo ) );
60476       return *this;
60477     }
60478 
setPNextVULKAN_HPP_NAMESPACE::InstanceCreateInfo60479     InstanceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60480     {
60481       pNext = pNext_;
60482       return *this;
60483     }
60484 
setFlagsVULKAN_HPP_NAMESPACE::InstanceCreateInfo60485     InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
60486     {
60487       flags = flags_;
60488       return *this;
60489     }
60490 
setPApplicationInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo60491     InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT
60492     {
60493       pApplicationInfo = pApplicationInfo_;
60494       return *this;
60495     }
60496 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo60497     InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
60498     {
60499       enabledLayerCount = enabledLayerCount_;
60500       return *this;
60501     }
60502 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60503     InstanceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
60504     {
60505       ppEnabledLayerNames = ppEnabledLayerNames_;
60506       return *this;
60507     }
60508 
60509 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60510     InstanceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
60511     {
60512       enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
60513       ppEnabledLayerNames = pEnabledLayerNames_.data();
60514       return *this;
60515     }
60516 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
60517 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo60518     InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
60519     {
60520       enabledExtensionCount = enabledExtensionCount_;
60521       return *this;
60522     }
60523 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60524     InstanceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
60525     {
60526       ppEnabledExtensionNames = ppEnabledExtensionNames_;
60527       return *this;
60528     }
60529 
60530 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo60531     InstanceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char* const > const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
60532     {
60533       enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
60534       ppEnabledExtensionNames = pEnabledExtensionNames_.data();
60535       return *this;
60536     }
60537 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
60538 
60539 
operator VkInstanceCreateInfo const&VULKAN_HPP_NAMESPACE::InstanceCreateInfo60540     operator VkInstanceCreateInfo const&() const VULKAN_HPP_NOEXCEPT
60541     {
60542       return *reinterpret_cast<const VkInstanceCreateInfo*>( this );
60543     }
60544 
operator VkInstanceCreateInfo&VULKAN_HPP_NAMESPACE::InstanceCreateInfo60545     operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
60546     {
60547       return *reinterpret_cast<VkInstanceCreateInfo*>( this );
60548     }
60549 
60550 
60551 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60552     auto operator<=>( InstanceCreateInfo const& ) const = default;
60553 #else
operator ==VULKAN_HPP_NAMESPACE::InstanceCreateInfo60554     bool operator==( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60555     {
60556       return ( sType == rhs.sType )
60557           && ( pNext == rhs.pNext )
60558           && ( flags == rhs.flags )
60559           && ( pApplicationInfo == rhs.pApplicationInfo )
60560           && ( enabledLayerCount == rhs.enabledLayerCount )
60561           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
60562           && ( enabledExtensionCount == rhs.enabledExtensionCount )
60563           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames );
60564     }
60565 
operator !=VULKAN_HPP_NAMESPACE::InstanceCreateInfo60566     bool operator!=( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60567     {
60568       return !operator==( rhs );
60569     }
60570 #endif
60571 
60572 
60573 
60574   public:
60575     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo;
60576     const void* pNext = {};
60577     VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {};
60578     const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo = {};
60579     uint32_t enabledLayerCount = {};
60580     const char* const * ppEnabledLayerNames = {};
60581     uint32_t enabledExtensionCount = {};
60582     const char* const * ppEnabledExtensionNames = {};
60583 
60584   };
60585   static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" );
60586   static_assert( std::is_standard_layout<InstanceCreateInfo>::value, "struct wrapper is not a standard layout!" );
60587 
60588   template <>
60589   struct CppType<StructureType, StructureType::eInstanceCreateInfo>
60590   {
60591     using Type = InstanceCreateInfo;
60592   };
60593 
60594 #ifdef VK_USE_PLATFORM_MACOS_MVK
60595   struct MacOSSurfaceCreateInfoMVK
60596   {
60597     static const bool allowDuplicate = false;
60598     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK;
60599 
60600 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60601     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT
60602     : flags( flags_ ), pView( pView_ )
60603     {}
60604 
60605     VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60606 
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60607     MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60608     {
60609       *this = rhs;
60610     }
60611 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60612 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60613     MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60614     {
60615       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const *>( &rhs );
60616       return *this;
60617     }
60618 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60619     MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
60620     {
60621       memcpy( static_cast<void *>( this ), &rhs, sizeof( MacOSSurfaceCreateInfoMVK ) );
60622       return *this;
60623     }
60624 
setPNextVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60625     MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60626     {
60627       pNext = pNext_;
60628       return *this;
60629     }
60630 
setFlagsVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60631     MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
60632     {
60633       flags = flags_;
60634       return *this;
60635     }
60636 
setPViewVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60637     MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT
60638     {
60639       pView = pView_;
60640       return *this;
60641     }
60642 
60643 
operator VkMacOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60644     operator VkMacOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT
60645     {
60646       return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( this );
60647     }
60648 
operator VkMacOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60649     operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
60650     {
60651       return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>( this );
60652     }
60653 
60654 
60655 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60656     auto operator<=>( MacOSSurfaceCreateInfoMVK const& ) const = default;
60657 #else
operator ==VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60658     bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
60659     {
60660       return ( sType == rhs.sType )
60661           && ( pNext == rhs.pNext )
60662           && ( flags == rhs.flags )
60663           && ( pView == rhs.pView );
60664     }
60665 
operator !=VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK60666     bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT
60667     {
60668       return !operator==( rhs );
60669     }
60670 #endif
60671 
60672 
60673 
60674   public:
60675     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
60676     const void* pNext = {};
60677     VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {};
60678     const void* pView = {};
60679 
60680   };
60681   static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
60682   static_assert( std::is_standard_layout<MacOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
60683 
60684   template <>
60685   struct CppType<StructureType, StructureType::eMacosSurfaceCreateInfoMVK>
60686   {
60687     using Type = MacOSSurfaceCreateInfoMVK;
60688   };
60689 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
60690 
60691   struct MemoryAllocateFlagsInfo
60692   {
60693     static const bool allowDuplicate = false;
60694     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo;
60695 
60696 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60697     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo(VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT
60698     : flags( flags_ ), deviceMask( deviceMask_ )
60699     {}
60700 
60701     VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60702 
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60703     MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60704     {
60705       *this = rhs;
60706     }
60707 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60708 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60709     MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60710     {
60711       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const *>( &rhs );
60712       return *this;
60713     }
60714 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60715     MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60716     {
60717       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryAllocateFlagsInfo ) );
60718       return *this;
60719     }
60720 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60721     MemoryAllocateFlagsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60722     {
60723       pNext = pNext_;
60724       return *this;
60725     }
60726 
setFlagsVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60727     MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT
60728     {
60729       flags = flags_;
60730       return *this;
60731     }
60732 
setDeviceMaskVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60733     MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
60734     {
60735       deviceMask = deviceMask_;
60736       return *this;
60737     }
60738 
60739 
operator VkMemoryAllocateFlagsInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60740     operator VkMemoryAllocateFlagsInfo const&() const VULKAN_HPP_NOEXCEPT
60741     {
60742       return *reinterpret_cast<const VkMemoryAllocateFlagsInfo*>( this );
60743     }
60744 
operator VkMemoryAllocateFlagsInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60745     operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
60746     {
60747       return *reinterpret_cast<VkMemoryAllocateFlagsInfo*>( this );
60748     }
60749 
60750 
60751 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60752     auto operator<=>( MemoryAllocateFlagsInfo const& ) const = default;
60753 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60754     bool operator==( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60755     {
60756       return ( sType == rhs.sType )
60757           && ( pNext == rhs.pNext )
60758           && ( flags == rhs.flags )
60759           && ( deviceMask == rhs.deviceMask );
60760     }
60761 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo60762     bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60763     {
60764       return !operator==( rhs );
60765     }
60766 #endif
60767 
60768 
60769 
60770   public:
60771     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
60772     const void* pNext = {};
60773     VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {};
60774     uint32_t deviceMask = {};
60775 
60776   };
60777   static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" );
60778   static_assert( std::is_standard_layout<MemoryAllocateFlagsInfo>::value, "struct wrapper is not a standard layout!" );
60779 
60780   template <>
60781   struct CppType<StructureType, StructureType::eMemoryAllocateFlagsInfo>
60782   {
60783     using Type = MemoryAllocateFlagsInfo;
60784   };
60785   using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
60786 
60787   struct MemoryDedicatedAllocateInfo
60788   {
60789     static const bool allowDuplicate = false;
60790     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo;
60791 
60792 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60793     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT
60794     : image( image_ ), buffer( buffer_ )
60795     {}
60796 
60797     VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60798 
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60799     MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60800     {
60801       *this = rhs;
60802     }
60803 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60804 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60805     MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60806     {
60807       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const *>( &rhs );
60808       return *this;
60809     }
60810 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60811     MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60812     {
60813       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryDedicatedAllocateInfo ) );
60814       return *this;
60815     }
60816 
setPNextVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60817     MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60818     {
60819       pNext = pNext_;
60820       return *this;
60821     }
60822 
setImageVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60823     MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
60824     {
60825       image = image_;
60826       return *this;
60827     }
60828 
setBufferVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60829     MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
60830     {
60831       buffer = buffer_;
60832       return *this;
60833     }
60834 
60835 
operator VkMemoryDedicatedAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60836     operator VkMemoryDedicatedAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
60837     {
60838       return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>( this );
60839     }
60840 
operator VkMemoryDedicatedAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60841     operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
60842     {
60843       return *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>( this );
60844     }
60845 
60846 
60847 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60848     auto operator<=>( MemoryDedicatedAllocateInfo const& ) const = default;
60849 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60850     bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60851     {
60852       return ( sType == rhs.sType )
60853           && ( pNext == rhs.pNext )
60854           && ( image == rhs.image )
60855           && ( buffer == rhs.buffer );
60856     }
60857 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo60858     bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
60859     {
60860       return !operator==( rhs );
60861     }
60862 #endif
60863 
60864 
60865 
60866   public:
60867     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
60868     const void* pNext = {};
60869     VULKAN_HPP_NAMESPACE::Image image = {};
60870     VULKAN_HPP_NAMESPACE::Buffer buffer = {};
60871 
60872   };
60873   static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" );
60874   static_assert( std::is_standard_layout<MemoryDedicatedAllocateInfo>::value, "struct wrapper is not a standard layout!" );
60875 
60876   template <>
60877   struct CppType<StructureType, StructureType::eMemoryDedicatedAllocateInfo>
60878   {
60879     using Type = MemoryDedicatedAllocateInfo;
60880   };
60881   using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
60882 
60883   struct MemoryDedicatedRequirements
60884   {
60885     static const bool allowDuplicate = false;
60886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements;
60887 
60888 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60889     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements(VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT
60890     : prefersDedicatedAllocation( prefersDedicatedAllocation_ ), requiresDedicatedAllocation( requiresDedicatedAllocation_ )
60891     {}
60892 
60893     VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60894 
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60895     MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
60896     {
60897       *this = rhs;
60898     }
60899 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60900 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60901     MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
60902     {
60903       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const *>( &rhs );
60904       return *this;
60905     }
60906 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60907     MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
60908     {
60909       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryDedicatedRequirements ) );
60910       return *this;
60911     }
60912 
60913 
operator VkMemoryDedicatedRequirements const&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60914     operator VkMemoryDedicatedRequirements const&() const VULKAN_HPP_NOEXCEPT
60915     {
60916       return *reinterpret_cast<const VkMemoryDedicatedRequirements*>( this );
60917     }
60918 
operator VkMemoryDedicatedRequirements&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60919     operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
60920     {
60921       return *reinterpret_cast<VkMemoryDedicatedRequirements*>( this );
60922     }
60923 
60924 
60925 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
60926     auto operator<=>( MemoryDedicatedRequirements const& ) const = default;
60927 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60928     bool operator==( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
60929     {
60930       return ( sType == rhs.sType )
60931           && ( pNext == rhs.pNext )
60932           && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation )
60933           && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
60934     }
60935 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements60936     bool operator!=( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT
60937     {
60938       return !operator==( rhs );
60939     }
60940 #endif
60941 
60942 
60943 
60944   public:
60945     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements;
60946     void* pNext = {};
60947     VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {};
60948     VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {};
60949 
60950   };
60951   static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" );
60952   static_assert( std::is_standard_layout<MemoryDedicatedRequirements>::value, "struct wrapper is not a standard layout!" );
60953 
60954   template <>
60955   struct CppType<StructureType, StructureType::eMemoryDedicatedRequirements>
60956   {
60957     using Type = MemoryDedicatedRequirements;
60958   };
60959   using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
60960 
60961   struct MemoryOpaqueCaptureAddressAllocateInfo
60962   {
60963     static const bool allowDuplicate = false;
60964     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
60965 
60966 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60967     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT
60968     : opaqueCaptureAddress( opaqueCaptureAddress_ )
60969     {}
60970 
60971     VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
60972 
MemoryOpaqueCaptureAddressAllocateInfoVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60973     MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60974     {
60975       *this = rhs;
60976     }
60977 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
60978 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60979     MemoryOpaqueCaptureAddressAllocateInfo & operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60980     {
60981       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs );
60982       return *this;
60983     }
60984 
operator =VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60985     MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
60986     {
60987       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) );
60988       return *this;
60989     }
60990 
setPNextVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60991     MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
60992     {
60993       pNext = pNext_;
60994       return *this;
60995     }
60996 
setOpaqueCaptureAddressVULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo60997     MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
60998     {
60999       opaqueCaptureAddress = opaqueCaptureAddress_;
61000       return *this;
61001     }
61002 
61003 
operator VkMemoryOpaqueCaptureAddressAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61004     operator VkMemoryOpaqueCaptureAddressAllocateInfo const&() const VULKAN_HPP_NOEXCEPT
61005     {
61006       return *reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
61007     }
61008 
operator VkMemoryOpaqueCaptureAddressAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61009     operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
61010     {
61011       return *reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>( this );
61012     }
61013 
61014 
61015 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61016     auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const& ) const = default;
61017 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61018     bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61019     {
61020       return ( sType == rhs.sType )
61021           && ( pNext == rhs.pNext )
61022           && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
61023     }
61024 
operator !=VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo61025     bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
61026     {
61027       return !operator==( rhs );
61028     }
61029 #endif
61030 
61031 
61032 
61033   public:
61034     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
61035     const void* pNext = {};
61036     uint64_t opaqueCaptureAddress = {};
61037 
61038   };
61039   static_assert( sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) == sizeof( VkMemoryOpaqueCaptureAddressAllocateInfo ), "struct and wrapper have different size!" );
61040   static_assert( std::is_standard_layout<MemoryOpaqueCaptureAddressAllocateInfo>::value, "struct wrapper is not a standard layout!" );
61041 
61042   template <>
61043   struct CppType<StructureType, StructureType::eMemoryOpaqueCaptureAddressAllocateInfo>
61044   {
61045     using Type = MemoryOpaqueCaptureAddressAllocateInfo;
61046   };
61047   using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
61048 
61049   struct MemoryPriorityAllocateInfoEXT
61050   {
61051     static const bool allowDuplicate = false;
61052     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT;
61053 
61054 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61055     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT(float priority_ = {}) VULKAN_HPP_NOEXCEPT
61056     : priority( priority_ )
61057     {}
61058 
61059     VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61060 
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61061     MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61062     {
61063       *this = rhs;
61064     }
61065 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61066 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61067     MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61068     {
61069       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const *>( &rhs );
61070       return *this;
61071     }
61072 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61073     MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61074     {
61075       memcpy( static_cast<void *>( this ), &rhs, sizeof( MemoryPriorityAllocateInfoEXT ) );
61076       return *this;
61077     }
61078 
setPNextVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61079     MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61080     {
61081       pNext = pNext_;
61082       return *this;
61083     }
61084 
setPriorityVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61085     MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT
61086     {
61087       priority = priority_;
61088       return *this;
61089     }
61090 
61091 
operator VkMemoryPriorityAllocateInfoEXT const&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61092     operator VkMemoryPriorityAllocateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
61093     {
61094       return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>( this );
61095     }
61096 
operator VkMemoryPriorityAllocateInfoEXT&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61097     operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
61098     {
61099       return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>( this );
61100     }
61101 
61102 
61103 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61104     auto operator<=>( MemoryPriorityAllocateInfoEXT const& ) const = default;
61105 #else
operator ==VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61106     bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61107     {
61108       return ( sType == rhs.sType )
61109           && ( pNext == rhs.pNext )
61110           && ( priority == rhs.priority );
61111     }
61112 
operator !=VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT61113     bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61114     {
61115       return !operator==( rhs );
61116     }
61117 #endif
61118 
61119 
61120 
61121   public:
61122     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
61123     const void* pNext = {};
61124     float priority = {};
61125 
61126   };
61127   static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" );
61128   static_assert( std::is_standard_layout<MemoryPriorityAllocateInfoEXT>::value, "struct wrapper is not a standard layout!" );
61129 
61130   template <>
61131   struct CppType<StructureType, StructureType::eMemoryPriorityAllocateInfoEXT>
61132   {
61133     using Type = MemoryPriorityAllocateInfoEXT;
61134   };
61135 
61136 #ifdef VK_USE_PLATFORM_METAL_EXT
61137   struct MetalSurfaceCreateInfoEXT
61138   {
61139     static const bool allowDuplicate = false;
61140     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT;
61141 
61142 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61143     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {}, const CAMetalLayer* pLayer_ = {}) VULKAN_HPP_NOEXCEPT
61144     : flags( flags_ ), pLayer( pLayer_ )
61145     {}
61146 
61147     VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61148 
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61149     MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61150     {
61151       *this = rhs;
61152     }
61153 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61154 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61155     MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61156     {
61157       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const *>( &rhs );
61158       return *this;
61159     }
61160 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61161     MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61162     {
61163       memcpy( static_cast<void *>( this ), &rhs, sizeof( MetalSurfaceCreateInfoEXT ) );
61164       return *this;
61165     }
61166 
setPNextVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61167     MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61168     {
61169       pNext = pNext_;
61170       return *this;
61171     }
61172 
setFlagsVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61173     MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
61174     {
61175       flags = flags_;
61176       return *this;
61177     }
61178 
setPLayerVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61179     MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ ) VULKAN_HPP_NOEXCEPT
61180     {
61181       pLayer = pLayer_;
61182       return *this;
61183     }
61184 
61185 
operator VkMetalSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61186     operator VkMetalSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
61187     {
61188       return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( this );
61189     }
61190 
operator VkMetalSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61191     operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
61192     {
61193       return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>( this );
61194     }
61195 
61196 
61197 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61198     auto operator<=>( MetalSurfaceCreateInfoEXT const& ) const = default;
61199 #else
operator ==VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61200     bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61201     {
61202       return ( sType == rhs.sType )
61203           && ( pNext == rhs.pNext )
61204           && ( flags == rhs.flags )
61205           && ( pLayer == rhs.pLayer );
61206     }
61207 
operator !=VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT61208     bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61209     {
61210       return !operator==( rhs );
61211     }
61212 #endif
61213 
61214 
61215 
61216   public:
61217     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
61218     const void* pNext = {};
61219     VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {};
61220     const CAMetalLayer* pLayer = {};
61221 
61222   };
61223   static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
61224   static_assert( std::is_standard_layout<MetalSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
61225 
61226   template <>
61227   struct CppType<StructureType, StructureType::eMetalSurfaceCreateInfoEXT>
61228   {
61229     using Type = MetalSurfaceCreateInfoEXT;
61230   };
61231 #endif /*VK_USE_PLATFORM_METAL_EXT*/
61232 
61233   union PerformanceCounterResultKHR
61234   {
PerformanceCounterResultKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)61235     PerformanceCounterResultKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const& rhs ) VULKAN_HPP_NOEXCEPT
61236     {
61237       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
61238     }
61239 
PerformanceCounterResultKHR(int32_t int32_={} )61240     PerformanceCounterResultKHR( int32_t int32_ = {} )
61241       : int32( int32_ )
61242     {}
61243 
PerformanceCounterResultKHR(int64_t int64_)61244     PerformanceCounterResultKHR( int64_t int64_ )
61245       : int64( int64_ )
61246     {}
61247 
PerformanceCounterResultKHR(uint32_t uint32_)61248     PerformanceCounterResultKHR( uint32_t uint32_ )
61249       : uint32( uint32_ )
61250     {}
61251 
PerformanceCounterResultKHR(uint64_t uint64_)61252     PerformanceCounterResultKHR( uint64_t uint64_ )
61253       : uint64( uint64_ )
61254     {}
61255 
PerformanceCounterResultKHR(float float32_)61256     PerformanceCounterResultKHR( float float32_ )
61257       : float32( float32_ )
61258     {}
61259 
PerformanceCounterResultKHR(double float64_)61260     PerformanceCounterResultKHR( double float64_ )
61261       : float64( float64_ )
61262     {}
61263 
setInt32(int32_t int32_)61264     PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT
61265     {
61266       int32 = int32_;
61267       return *this;
61268     }
61269 
setInt64(int64_t int64_)61270     PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT
61271     {
61272       int64 = int64_;
61273       return *this;
61274     }
61275 
setUint32(uint32_t uint32_)61276     PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT
61277     {
61278       uint32 = uint32_;
61279       return *this;
61280     }
61281 
setUint64(uint64_t uint64_)61282     PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT
61283     {
61284       uint64 = uint64_;
61285       return *this;
61286     }
61287 
setFloat32(float float32_)61288     PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT
61289     {
61290       float32 = float32_;
61291       return *this;
61292     }
61293 
setFloat64(double float64_)61294     PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT
61295     {
61296       float64 = float64_;
61297       return *this;
61298     }
61299 
operator =(VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs)61300     VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61301     {
61302       memcpy( static_cast<void*>(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) );
61303       return *this;
61304     }
61305 
operator VkPerformanceCounterResultKHR const&() const61306     operator VkPerformanceCounterResultKHR const&() const
61307     {
61308       return *reinterpret_cast<const VkPerformanceCounterResultKHR*>(this);
61309     }
61310 
operator VkPerformanceCounterResultKHR&()61311     operator VkPerformanceCounterResultKHR &()
61312     {
61313       return *reinterpret_cast<VkPerformanceCounterResultKHR*>(this);
61314     }
61315 
61316     int32_t int32;
61317     int64_t int64;
61318     uint32_t uint32;
61319     uint64_t uint64;
61320     float float32;
61321     double float64;
61322   };
61323 
61324   struct PerformanceQuerySubmitInfoKHR
61325   {
61326     static const bool allowDuplicate = false;
61327     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR;
61328 
61329 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61330     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR(uint32_t counterPassIndex_ = {}) VULKAN_HPP_NOEXCEPT
61331     : counterPassIndex( counterPassIndex_ )
61332     {}
61333 
61334     VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61335 
PerformanceQuerySubmitInfoKHRVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61336     PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61337     {
61338       *this = rhs;
61339     }
61340 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61341 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61342     PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61343     {
61344       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const *>( &rhs );
61345       return *this;
61346     }
61347 
operator =VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61348     PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
61349     {
61350       memcpy( static_cast<void *>( this ), &rhs, sizeof( PerformanceQuerySubmitInfoKHR ) );
61351       return *this;
61352     }
61353 
setPNextVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61354     PerformanceQuerySubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
61355     {
61356       pNext = pNext_;
61357       return *this;
61358     }
61359 
setCounterPassIndexVULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61360     PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT
61361     {
61362       counterPassIndex = counterPassIndex_;
61363       return *this;
61364     }
61365 
61366 
operator VkPerformanceQuerySubmitInfoKHR const&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61367     operator VkPerformanceQuerySubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT
61368     {
61369       return *reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>( this );
61370     }
61371 
operator VkPerformanceQuerySubmitInfoKHR&VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61372     operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
61373     {
61374       return *reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>( this );
61375     }
61376 
61377 
61378 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61379     auto operator<=>( PerformanceQuerySubmitInfoKHR const& ) const = default;
61380 #else
operator ==VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61381     bool operator==( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
61382     {
61383       return ( sType == rhs.sType )
61384           && ( pNext == rhs.pNext )
61385           && ( counterPassIndex == rhs.counterPassIndex );
61386     }
61387 
operator !=VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR61388     bool operator!=( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
61389     {
61390       return !operator==( rhs );
61391     }
61392 #endif
61393 
61394 
61395 
61396   public:
61397     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR;
61398     const void* pNext = {};
61399     uint32_t counterPassIndex = {};
61400 
61401   };
61402   static_assert( sizeof( PerformanceQuerySubmitInfoKHR ) == sizeof( VkPerformanceQuerySubmitInfoKHR ), "struct and wrapper have different size!" );
61403   static_assert( std::is_standard_layout<PerformanceQuerySubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
61404 
61405   template <>
61406   struct CppType<StructureType, StructureType::ePerformanceQuerySubmitInfoKHR>
61407   {
61408     using Type = PerformanceQuerySubmitInfoKHR;
61409   };
61410 
61411   struct PhysicalDevice16BitStorageFeatures
61412   {
61413     static const bool allowDuplicate = false;
61414     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures;
61415 
61416 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61417     VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}) VULKAN_HPP_NOEXCEPT
61418     : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ )
61419     {}
61420 
61421     VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61422 
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61423     PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61424     {
61425       *this = rhs;
61426     }
61427 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61428 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61429     PhysicalDevice16BitStorageFeatures & operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61430     {
61431       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const *>( &rhs );
61432       return *this;
61433     }
61434 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61435     PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61436     {
61437       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevice16BitStorageFeatures ) );
61438       return *this;
61439     }
61440 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61441     PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61442     {
61443       pNext = pNext_;
61444       return *this;
61445     }
61446 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61447     PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
61448     {
61449       storageBuffer16BitAccess = storageBuffer16BitAccess_;
61450       return *this;
61451     }
61452 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61453     PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
61454     {
61455       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
61456       return *this;
61457     }
61458 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61459     PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
61460     {
61461       storagePushConstant16 = storagePushConstant16_;
61462       return *this;
61463     }
61464 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61465     PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
61466     {
61467       storageInputOutput16 = storageInputOutput16_;
61468       return *this;
61469     }
61470 
61471 
operator VkPhysicalDevice16BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61472     operator VkPhysicalDevice16BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
61473     {
61474       return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>( this );
61475     }
61476 
operator VkPhysicalDevice16BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61477     operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
61478     {
61479       return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>( this );
61480     }
61481 
61482 
61483 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61484     auto operator<=>( PhysicalDevice16BitStorageFeatures const& ) const = default;
61485 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61486     bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61487     {
61488       return ( sType == rhs.sType )
61489           && ( pNext == rhs.pNext )
61490           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
61491           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
61492           && ( storagePushConstant16 == rhs.storagePushConstant16 )
61493           && ( storageInputOutput16 == rhs.storageInputOutput16 );
61494     }
61495 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures61496     bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61497     {
61498       return !operator==( rhs );
61499     }
61500 #endif
61501 
61502 
61503 
61504   public:
61505     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
61506     void* pNext = {};
61507     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
61508     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
61509     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
61510     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
61511 
61512   };
61513   static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" );
61514   static_assert( std::is_standard_layout<PhysicalDevice16BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
61515 
61516   template <>
61517   struct CppType<StructureType, StructureType::ePhysicalDevice16BitStorageFeatures>
61518   {
61519     using Type = PhysicalDevice16BitStorageFeatures;
61520   };
61521   using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
61522 
61523   struct PhysicalDevice4444FormatsFeaturesEXT
61524   {
61525     static const bool allowDuplicate = false;
61526     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
61527 
61528 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61529     VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {}, VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {}) VULKAN_HPP_NOEXCEPT
61530     : formatA4R4G4B4( formatA4R4G4B4_ ), formatA4B4G4R4( formatA4B4G4R4_ )
61531     {}
61532 
61533     VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61534 
PhysicalDevice4444FormatsFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61535     PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61536     {
61537       *this = rhs;
61538     }
61539 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61540 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61541     PhysicalDevice4444FormatsFeaturesEXT & operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61542     {
61543       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs );
61544       return *this;
61545     }
61546 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61547     PhysicalDevice4444FormatsFeaturesEXT & operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61548     {
61549       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevice4444FormatsFeaturesEXT ) );
61550       return *this;
61551     }
61552 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61553     PhysicalDevice4444FormatsFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61554     {
61555       pNext = pNext_;
61556       return *this;
61557     }
61558 
setFormatA4R4G4B4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61559     PhysicalDevice4444FormatsFeaturesEXT & setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT
61560     {
61561       formatA4R4G4B4 = formatA4R4G4B4_;
61562       return *this;
61563     }
61564 
setFormatA4B4G4R4VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61565     PhysicalDevice4444FormatsFeaturesEXT & setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT
61566     {
61567       formatA4B4G4R4 = formatA4B4G4R4_;
61568       return *this;
61569     }
61570 
61571 
operator VkPhysicalDevice4444FormatsFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61572     operator VkPhysicalDevice4444FormatsFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61573     {
61574       return *reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
61575     }
61576 
operator VkPhysicalDevice4444FormatsFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61577     operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61578     {
61579       return *reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>( this );
61580     }
61581 
61582 
61583 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61584     auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const& ) const = default;
61585 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61586     bool operator==( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61587     {
61588       return ( sType == rhs.sType )
61589           && ( pNext == rhs.pNext )
61590           && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 )
61591           && ( formatA4B4G4R4 == rhs.formatA4B4G4R4 );
61592     }
61593 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT61594     bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61595     {
61596       return !operator==( rhs );
61597     }
61598 #endif
61599 
61600 
61601 
61602   public:
61603     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
61604     void* pNext = {};
61605     VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {};
61606     VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {};
61607 
61608   };
61609   static_assert( sizeof( PhysicalDevice4444FormatsFeaturesEXT ) == sizeof( VkPhysicalDevice4444FormatsFeaturesEXT ), "struct and wrapper have different size!" );
61610   static_assert( std::is_standard_layout<PhysicalDevice4444FormatsFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61611 
61612   template <>
61613   struct CppType<StructureType, StructureType::ePhysicalDevice4444FormatsFeaturesEXT>
61614   {
61615     using Type = PhysicalDevice4444FormatsFeaturesEXT;
61616   };
61617 
61618   struct PhysicalDevice8BitStorageFeatures
61619   {
61620     static const bool allowDuplicate = false;
61621     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures;
61622 
61623 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61624     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}) VULKAN_HPP_NOEXCEPT
61625     : storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ )
61626     {}
61627 
61628     VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61629 
PhysicalDevice8BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61630     PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61631     {
61632       *this = rhs;
61633     }
61634 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61635 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61636     PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61637     {
61638       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const *>( &rhs );
61639       return *this;
61640     }
61641 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61642     PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61643     {
61644       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevice8BitStorageFeatures ) );
61645       return *this;
61646     }
61647 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61648     PhysicalDevice8BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61649     {
61650       pNext = pNext_;
61651       return *this;
61652     }
61653 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61654     PhysicalDevice8BitStorageFeatures & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
61655     {
61656       storageBuffer8BitAccess = storageBuffer8BitAccess_;
61657       return *this;
61658     }
61659 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61660     PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
61661     {
61662       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
61663       return *this;
61664     }
61665 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61666     PhysicalDevice8BitStorageFeatures & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
61667     {
61668       storagePushConstant8 = storagePushConstant8_;
61669       return *this;
61670     }
61671 
61672 
operator VkPhysicalDevice8BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61673     operator VkPhysicalDevice8BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT
61674     {
61675       return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>( this );
61676     }
61677 
operator VkPhysicalDevice8BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61678     operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
61679     {
61680       return *reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>( this );
61681     }
61682 
61683 
61684 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61685     auto operator<=>( PhysicalDevice8BitStorageFeatures const& ) const = default;
61686 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61687     bool operator==( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61688     {
61689       return ( sType == rhs.sType )
61690           && ( pNext == rhs.pNext )
61691           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
61692           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
61693           && ( storagePushConstant8 == rhs.storagePushConstant8 );
61694     }
61695 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures61696     bool operator!=( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
61697     {
61698       return !operator==( rhs );
61699     }
61700 #endif
61701 
61702 
61703 
61704   public:
61705     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures;
61706     void* pNext = {};
61707     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
61708     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
61709     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
61710 
61711   };
61712   static_assert( sizeof( PhysicalDevice8BitStorageFeatures ) == sizeof( VkPhysicalDevice8BitStorageFeatures ), "struct and wrapper have different size!" );
61713   static_assert( std::is_standard_layout<PhysicalDevice8BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
61714 
61715   template <>
61716   struct CppType<StructureType, StructureType::ePhysicalDevice8BitStorageFeatures>
61717   {
61718     using Type = PhysicalDevice8BitStorageFeatures;
61719   };
61720   using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
61721 
61722   struct PhysicalDeviceASTCDecodeFeaturesEXT
61723   {
61724     static const bool allowDuplicate = false;
61725     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
61726 
61727 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61728     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {}) VULKAN_HPP_NOEXCEPT
61729     : decodeModeSharedExponent( decodeModeSharedExponent_ )
61730     {}
61731 
61732     VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61733 
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61734     PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61735     {
61736       *this = rhs;
61737     }
61738 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61739 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61740     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61741     {
61742       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs );
61743       return *this;
61744     }
61745 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61746     PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61747     {
61748       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) );
61749       return *this;
61750     }
61751 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61752     PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61753     {
61754       pNext = pNext_;
61755       return *this;
61756     }
61757 
setDecodeModeSharedExponentVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61758     PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
61759     {
61760       decodeModeSharedExponent = decodeModeSharedExponent_;
61761       return *this;
61762     }
61763 
61764 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61765     operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61766     {
61767       return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
61768     }
61769 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61770     operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61771     {
61772       return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
61773     }
61774 
61775 
61776 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61777     auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const& ) const = default;
61778 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61779     bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61780     {
61781       return ( sType == rhs.sType )
61782           && ( pNext == rhs.pNext )
61783           && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
61784     }
61785 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT61786     bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61787     {
61788       return !operator==( rhs );
61789     }
61790 #endif
61791 
61792 
61793 
61794   public:
61795     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
61796     void* pNext = {};
61797     VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {};
61798 
61799   };
61800   static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" );
61801   static_assert( std::is_standard_layout<PhysicalDeviceASTCDecodeFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61802 
61803   template <>
61804   struct CppType<StructureType, StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT>
61805   {
61806     using Type = PhysicalDeviceASTCDecodeFeaturesEXT;
61807   };
61808 
61809   struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
61810   {
61811     static const bool allowDuplicate = false;
61812     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
61813 
61814 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61815     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {}) VULKAN_HPP_NOEXCEPT
61816     : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
61817     {}
61818 
61819     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61820 
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61821     PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61822     {
61823       *this = rhs;
61824     }
61825 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61826 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61827     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61828     {
61829       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs );
61830       return *this;
61831     }
61832 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61833     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61834     {
61835       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) );
61836       return *this;
61837     }
61838 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61839     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
61840     {
61841       pNext = pNext_;
61842       return *this;
61843     }
61844 
setAdvancedBlendCoherentOperationsVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61845     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
61846     {
61847       advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
61848       return *this;
61849     }
61850 
61851 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61852     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
61853     {
61854       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
61855     }
61856 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61857     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
61858     {
61859       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
61860     }
61861 
61862 
61863 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61864     auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& ) const = default;
61865 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61866     bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61867     {
61868       return ( sType == rhs.sType )
61869           && ( pNext == rhs.pNext )
61870           && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
61871     }
61872 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT61873     bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61874     {
61875       return !operator==( rhs );
61876     }
61877 #endif
61878 
61879 
61880 
61881   public:
61882     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
61883     void* pNext = {};
61884     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {};
61885 
61886   };
61887   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" );
61888   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
61889 
61890   template <>
61891   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT>
61892   {
61893     using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
61894   };
61895 
61896   struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
61897   {
61898     static const bool allowDuplicate = false;
61899     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
61900 
61901 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61902     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT(uint32_t advancedBlendMaxColorAttachments_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {}) VULKAN_HPP_NOEXCEPT
61903     : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ ), advancedBlendIndependentBlend( advancedBlendIndependentBlend_ ), advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ ), advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ ), advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ ), advancedBlendAllOperations( advancedBlendAllOperations_ )
61904     {}
61905 
61906     VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61907 
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61908     PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61909     {
61910       *this = rhs;
61911     }
61912 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61913 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61914     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61915     {
61916       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs );
61917       return *this;
61918     }
61919 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61920     PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
61921     {
61922       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) );
61923       return *this;
61924     }
61925 
61926 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61927     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
61928     {
61929       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
61930     }
61931 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61932     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
61933     {
61934       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
61935     }
61936 
61937 
61938 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
61939     auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& ) const = default;
61940 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61941     bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61942     {
61943       return ( sType == rhs.sType )
61944           && ( pNext == rhs.pNext )
61945           && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments )
61946           && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend )
61947           && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor )
61948           && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor )
61949           && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap )
61950           && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
61951     }
61952 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT61953     bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
61954     {
61955       return !operator==( rhs );
61956     }
61957 #endif
61958 
61959 
61960 
61961   public:
61962     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
61963     void* pNext = {};
61964     uint32_t advancedBlendMaxColorAttachments = {};
61965     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {};
61966     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {};
61967     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {};
61968     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {};
61969     VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {};
61970 
61971   };
61972   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" );
61973   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
61974 
61975   template <>
61976   struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT>
61977   {
61978     using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
61979   };
61980 
61981   struct PhysicalDeviceBufferDeviceAddressFeatures
61982   {
61983     static const bool allowDuplicate = false;
61984     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
61985 
61986 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61987     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT
61988     : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
61989     {}
61990 
61991     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
61992 
PhysicalDeviceBufferDeviceAddressFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61993     PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
61994     {
61995       *this = rhs;
61996     }
61997 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
61998 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures61999     PhysicalDeviceBufferDeviceAddressFeatures & operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62000     {
62001       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs );
62002       return *this;
62003     }
62004 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62005     PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
62006     {
62007       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) );
62008       return *this;
62009     }
62010 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62011     PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62012     {
62013       pNext = pNext_;
62014       return *this;
62015     }
62016 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62017     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
62018     {
62019       bufferDeviceAddress = bufferDeviceAddress_;
62020       return *this;
62021     }
62022 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62023     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
62024     {
62025       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
62026       return *this;
62027     }
62028 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62029     PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
62030     {
62031       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
62032       return *this;
62033     }
62034 
62035 
operator VkPhysicalDeviceBufferDeviceAddressFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62036     operator VkPhysicalDeviceBufferDeviceAddressFeatures const&() const VULKAN_HPP_NOEXCEPT
62037     {
62038       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
62039     }
62040 
operator VkPhysicalDeviceBufferDeviceAddressFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62041     operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
62042     {
62043       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>( this );
62044     }
62045 
62046 
62047 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62048     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const& ) const = default;
62049 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62050     bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
62051     {
62052       return ( sType == rhs.sType )
62053           && ( pNext == rhs.pNext )
62054           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
62055           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
62056           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
62057     }
62058 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures62059     bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
62060     {
62061       return !operator==( rhs );
62062     }
62063 #endif
62064 
62065 
62066 
62067   public:
62068     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
62069     void* pNext = {};
62070     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
62071     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
62072     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
62073 
62074   };
62075   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeatures ), "struct and wrapper have different size!" );
62076   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeatures>::value, "struct wrapper is not a standard layout!" );
62077 
62078   template <>
62079   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeatures>
62080   {
62081     using Type = PhysicalDeviceBufferDeviceAddressFeatures;
62082   };
62083   using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
62084 
62085   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
62086   {
62087     static const bool allowDuplicate = false;
62088     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
62089 
62090 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62091     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT
62092     : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
62093     {}
62094 
62095     VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62096 
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62097     PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62098     {
62099       *this = rhs;
62100     }
62101 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62102 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62103     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62104     {
62105       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs );
62106       return *this;
62107     }
62108 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62109     PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62110     {
62111       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) );
62112       return *this;
62113     }
62114 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62115     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62116     {
62117       pNext = pNext_;
62118       return *this;
62119     }
62120 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62121     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
62122     {
62123       bufferDeviceAddress = bufferDeviceAddress_;
62124       return *this;
62125     }
62126 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62127     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
62128     {
62129       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
62130       return *this;
62131     }
62132 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62133     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
62134     {
62135       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
62136       return *this;
62137     }
62138 
62139 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62140     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62141     {
62142       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
62143     }
62144 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62145     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62146     {
62147       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
62148     }
62149 
62150 
62151 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62152     auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& ) const = default;
62153 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62154     bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62155     {
62156       return ( sType == rhs.sType )
62157           && ( pNext == rhs.pNext )
62158           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
62159           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
62160           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
62161     }
62162 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT62163     bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62164     {
62165       return !operator==( rhs );
62166     }
62167 #endif
62168 
62169 
62170 
62171   public:
62172     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
62173     void* pNext = {};
62174     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
62175     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
62176     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
62177 
62178   };
62179   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" );
62180   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62181 
62182   template <>
62183   struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT>
62184   {
62185     using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
62186   };
62187   using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
62188 
62189   struct PhysicalDeviceCoherentMemoryFeaturesAMD
62190   {
62191     static const bool allowDuplicate = false;
62192     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
62193 
62194 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62195     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD(VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {}) VULKAN_HPP_NOEXCEPT
62196     : deviceCoherentMemory( deviceCoherentMemory_ )
62197     {}
62198 
62199     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62200 
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62201     PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
62202     {
62203       *this = rhs;
62204     }
62205 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62206 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62207     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
62208     {
62209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs );
62210       return *this;
62211     }
62212 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62213     PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
62214     {
62215       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) );
62216       return *this;
62217     }
62218 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62219     PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62220     {
62221       pNext = pNext_;
62222       return *this;
62223     }
62224 
setDeviceCoherentMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62225     PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
62226     {
62227       deviceCoherentMemory = deviceCoherentMemory_;
62228       return *this;
62229     }
62230 
62231 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62232     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&() const VULKAN_HPP_NOEXCEPT
62233     {
62234       return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
62235     }
62236 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62237     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
62238     {
62239       return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
62240     }
62241 
62242 
62243 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62244     auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const& ) const = default;
62245 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62246     bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
62247     {
62248       return ( sType == rhs.sType )
62249           && ( pNext == rhs.pNext )
62250           && ( deviceCoherentMemory == rhs.deviceCoherentMemory );
62251     }
62252 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD62253     bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
62254     {
62255       return !operator==( rhs );
62256     }
62257 #endif
62258 
62259 
62260 
62261   public:
62262     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
62263     void* pNext = {};
62264     VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {};
62265 
62266   };
62267   static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "struct and wrapper have different size!" );
62268   static_assert( std::is_standard_layout<PhysicalDeviceCoherentMemoryFeaturesAMD>::value, "struct wrapper is not a standard layout!" );
62269 
62270   template <>
62271   struct CppType<StructureType, StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD>
62272   {
62273     using Type = PhysicalDeviceCoherentMemoryFeaturesAMD;
62274   };
62275 
62276   struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
62277   {
62278     static const bool allowDuplicate = false;
62279     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
62280 
62281 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62282     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {}) VULKAN_HPP_NOEXCEPT
62283     : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ), computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
62284     {}
62285 
62286     VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62287 
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62288     PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62289     {
62290       *this = rhs;
62291     }
62292 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62293 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62294     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62295     {
62296       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs );
62297       return *this;
62298     }
62299 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62300     PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62301     {
62302       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) );
62303       return *this;
62304     }
62305 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62306     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62307     {
62308       pNext = pNext_;
62309       return *this;
62310     }
62311 
setComputeDerivativeGroupQuadsVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62312     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
62313     {
62314       computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
62315       return *this;
62316     }
62317 
setComputeDerivativeGroupLinearVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62318     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
62319     {
62320       computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
62321       return *this;
62322     }
62323 
62324 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62325     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62326     {
62327       return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
62328     }
62329 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62330     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
62331     {
62332       return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
62333     }
62334 
62335 
62336 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62337     auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& ) const = default;
62338 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62339     bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62340     {
62341       return ( sType == rhs.sType )
62342           && ( pNext == rhs.pNext )
62343           && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads )
62344           && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
62345     }
62346 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV62347     bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62348     {
62349       return !operator==( rhs );
62350     }
62351 #endif
62352 
62353 
62354 
62355   public:
62356     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
62357     void* pNext = {};
62358     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {};
62359     VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {};
62360 
62361   };
62362   static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" );
62363   static_assert( std::is_standard_layout<PhysicalDeviceComputeShaderDerivativesFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62364 
62365   template <>
62366   struct CppType<StructureType, StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV>
62367   {
62368     using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV;
62369   };
62370 
62371   struct PhysicalDeviceConditionalRenderingFeaturesEXT
62372   {
62373     static const bool allowDuplicate = false;
62374     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
62375 
62376 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62377     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {}) VULKAN_HPP_NOEXCEPT
62378     : conditionalRendering( conditionalRendering_ ), inheritedConditionalRendering( inheritedConditionalRendering_ )
62379     {}
62380 
62381     VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62382 
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62383     PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62384     {
62385       *this = rhs;
62386     }
62387 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62388 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62389     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62390     {
62391       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs );
62392       return *this;
62393     }
62394 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62395     PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62396     {
62397       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) );
62398       return *this;
62399     }
62400 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62401     PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62402     {
62403       pNext = pNext_;
62404       return *this;
62405     }
62406 
setConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62407     PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
62408     {
62409       conditionalRendering = conditionalRendering_;
62410       return *this;
62411     }
62412 
setInheritedConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62413     PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
62414     {
62415       inheritedConditionalRendering = inheritedConditionalRendering_;
62416       return *this;
62417     }
62418 
62419 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62420     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62421     {
62422       return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
62423     }
62424 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62425     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62426     {
62427       return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
62428     }
62429 
62430 
62431 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62432     auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const& ) const = default;
62433 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62434     bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62435     {
62436       return ( sType == rhs.sType )
62437           && ( pNext == rhs.pNext )
62438           && ( conditionalRendering == rhs.conditionalRendering )
62439           && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
62440     }
62441 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT62442     bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62443     {
62444       return !operator==( rhs );
62445     }
62446 #endif
62447 
62448 
62449 
62450   public:
62451     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
62452     void* pNext = {};
62453     VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {};
62454     VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {};
62455 
62456   };
62457   static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" );
62458   static_assert( std::is_standard_layout<PhysicalDeviceConditionalRenderingFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62459 
62460   template <>
62461   struct CppType<StructureType, StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT>
62462   {
62463     using Type = PhysicalDeviceConditionalRenderingFeaturesEXT;
62464   };
62465 
62466   struct PhysicalDeviceConservativeRasterizationPropertiesEXT
62467   {
62468     static const bool allowDuplicate = false;
62469     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
62470 
62471 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62472     VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT(float primitiveOverestimationSize_ = {}, float maxExtraPrimitiveOverestimationSize_ = {}, float extraPrimitiveOverestimationSizeGranularity_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization_ = {}, VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized_ = {}, VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {}) VULKAN_HPP_NOEXCEPT
62473     : primitiveOverestimationSize( primitiveOverestimationSize_ ), maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ ), extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ ), primitiveUnderestimation( primitiveUnderestimation_ ), conservativePointAndLineRasterization( conservativePointAndLineRasterization_ ), degenerateTrianglesRasterized( degenerateTrianglesRasterized_ ), degenerateLinesRasterized( degenerateLinesRasterized_ ), fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ ), conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
62474     {}
62475 
62476     VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62477 
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62478     PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62479     {
62480       *this = rhs;
62481     }
62482 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62483 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62484     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62485     {
62486       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs );
62487       return *this;
62488     }
62489 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62490     PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62491     {
62492       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) );
62493       return *this;
62494     }
62495 
62496 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62497     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
62498     {
62499       return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
62500     }
62501 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62502     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
62503     {
62504       return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
62505     }
62506 
62507 
62508 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62509     auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const& ) const = default;
62510 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62511     bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62512     {
62513       return ( sType == rhs.sType )
62514           && ( pNext == rhs.pNext )
62515           && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize )
62516           && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize )
62517           && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity )
62518           && ( primitiveUnderestimation == rhs.primitiveUnderestimation )
62519           && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization )
62520           && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized )
62521           && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized )
62522           && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable )
62523           && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
62524     }
62525 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT62526     bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62527     {
62528       return !operator==( rhs );
62529     }
62530 #endif
62531 
62532 
62533 
62534   public:
62535     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
62536     void* pNext = {};
62537     float primitiveOverestimationSize = {};
62538     float maxExtraPrimitiveOverestimationSize = {};
62539     float extraPrimitiveOverestimationSizeGranularity = {};
62540     VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {};
62541     VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {};
62542     VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {};
62543     VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {};
62544     VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {};
62545     VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {};
62546 
62547   };
62548   static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
62549   static_assert( std::is_standard_layout<PhysicalDeviceConservativeRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
62550 
62551   template <>
62552   struct CppType<StructureType, StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT>
62553   {
62554     using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT;
62555   };
62556 
62557   struct PhysicalDeviceCooperativeMatrixFeaturesNV
62558   {
62559     static const bool allowDuplicate = false;
62560     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
62561 
62562 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62563     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {}) VULKAN_HPP_NOEXCEPT
62564     : cooperativeMatrix( cooperativeMatrix_ ), cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
62565     {}
62566 
62567     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62568 
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62569     PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62570     {
62571       *this = rhs;
62572     }
62573 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62574 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62575     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62576     {
62577       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs );
62578       return *this;
62579     }
62580 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62581     PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62582     {
62583       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) );
62584       return *this;
62585     }
62586 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62587     PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62588     {
62589       pNext = pNext_;
62590       return *this;
62591     }
62592 
setCooperativeMatrixVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62593     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
62594     {
62595       cooperativeMatrix = cooperativeMatrix_;
62596       return *this;
62597     }
62598 
setCooperativeMatrixRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62599     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
62600     {
62601       cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
62602       return *this;
62603     }
62604 
62605 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62606     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62607     {
62608       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
62609     }
62610 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62611     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
62612     {
62613       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
62614     }
62615 
62616 
62617 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62618     auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const& ) const = default;
62619 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62620     bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62621     {
62622       return ( sType == rhs.sType )
62623           && ( pNext == rhs.pNext )
62624           && ( cooperativeMatrix == rhs.cooperativeMatrix )
62625           && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
62626     }
62627 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV62628     bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62629     {
62630       return !operator==( rhs );
62631     }
62632 #endif
62633 
62634 
62635 
62636   public:
62637     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
62638     void* pNext = {};
62639     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
62640     VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
62641 
62642   };
62643   static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" );
62644   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62645 
62646   template <>
62647   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV>
62648   {
62649     using Type = PhysicalDeviceCooperativeMatrixFeaturesNV;
62650   };
62651 
62652   struct PhysicalDeviceCooperativeMatrixPropertiesNV
62653   {
62654     static const bool allowDuplicate = false;
62655     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
62656 
62657 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62658     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV(VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {}) VULKAN_HPP_NOEXCEPT
62659     : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
62660     {}
62661 
62662     VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62663 
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62664     PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62665     {
62666       *this = rhs;
62667     }
62668 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62669 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62670     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62671     {
62672       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs );
62673       return *this;
62674     }
62675 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62676     PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62677     {
62678       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) );
62679       return *this;
62680     }
62681 
62682 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62683     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
62684     {
62685       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
62686     }
62687 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62688     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
62689     {
62690       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
62691     }
62692 
62693 
62694 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62695     auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const& ) const = default;
62696 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62697     bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62698     {
62699       return ( sType == rhs.sType )
62700           && ( pNext == rhs.pNext )
62701           && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
62702     }
62703 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV62704     bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62705     {
62706       return !operator==( rhs );
62707     }
62708 #endif
62709 
62710 
62711 
62712   public:
62713     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
62714     void* pNext = {};
62715     VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
62716 
62717   };
62718   static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
62719   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
62720 
62721   template <>
62722   struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV>
62723   {
62724     using Type = PhysicalDeviceCooperativeMatrixPropertiesNV;
62725   };
62726 
62727   struct PhysicalDeviceCornerSampledImageFeaturesNV
62728   {
62729     static const bool allowDuplicate = false;
62730     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
62731 
62732 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62733     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {}) VULKAN_HPP_NOEXCEPT
62734     : cornerSampledImage( cornerSampledImage_ )
62735     {}
62736 
62737     VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62738 
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62739     PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62740     {
62741       *this = rhs;
62742     }
62743 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62744 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62745     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62746     {
62747       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs );
62748       return *this;
62749     }
62750 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62751     PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62752     {
62753       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) );
62754       return *this;
62755     }
62756 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62757     PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62758     {
62759       pNext = pNext_;
62760       return *this;
62761     }
62762 
setCornerSampledImageVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62763     PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
62764     {
62765       cornerSampledImage = cornerSampledImage_;
62766       return *this;
62767     }
62768 
62769 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62770     operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62771     {
62772       return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
62773     }
62774 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62775     operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
62776     {
62777       return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
62778     }
62779 
62780 
62781 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62782     auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const& ) const = default;
62783 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62784     bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62785     {
62786       return ( sType == rhs.sType )
62787           && ( pNext == rhs.pNext )
62788           && ( cornerSampledImage == rhs.cornerSampledImage );
62789     }
62790 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV62791     bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62792     {
62793       return !operator==( rhs );
62794     }
62795 #endif
62796 
62797 
62798 
62799   public:
62800     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
62801     void* pNext = {};
62802     VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {};
62803 
62804   };
62805   static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" );
62806   static_assert( std::is_standard_layout<PhysicalDeviceCornerSampledImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62807 
62808   template <>
62809   struct CppType<StructureType, StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV>
62810   {
62811     using Type = PhysicalDeviceCornerSampledImageFeaturesNV;
62812   };
62813 
62814   struct PhysicalDeviceCoverageReductionModeFeaturesNV
62815   {
62816     static const bool allowDuplicate = false;
62817     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
62818 
62819 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62820     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {}) VULKAN_HPP_NOEXCEPT
62821     : coverageReductionMode( coverageReductionMode_ )
62822     {}
62823 
62824     VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62825 
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62826     PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62827     {
62828       *this = rhs;
62829     }
62830 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62831 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62832     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62833     {
62834       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs );
62835       return *this;
62836     }
62837 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62838     PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
62839     {
62840       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) );
62841       return *this;
62842     }
62843 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62844     PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62845     {
62846       pNext = pNext_;
62847       return *this;
62848     }
62849 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62850     PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
62851     {
62852       coverageReductionMode = coverageReductionMode_;
62853       return *this;
62854     }
62855 
62856 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62857     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
62858     {
62859       return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
62860     }
62861 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62862     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
62863     {
62864       return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
62865     }
62866 
62867 
62868 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62869     auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const& ) const = default;
62870 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62871     bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62872     {
62873       return ( sType == rhs.sType )
62874           && ( pNext == rhs.pNext )
62875           && ( coverageReductionMode == rhs.coverageReductionMode );
62876     }
62877 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV62878     bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
62879     {
62880       return !operator==( rhs );
62881     }
62882 #endif
62883 
62884 
62885 
62886   public:
62887     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
62888     void* pNext = {};
62889     VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {};
62890 
62891   };
62892   static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" );
62893   static_assert( std::is_standard_layout<PhysicalDeviceCoverageReductionModeFeaturesNV>::value, "struct wrapper is not a standard layout!" );
62894 
62895   template <>
62896   struct CppType<StructureType, StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV>
62897   {
62898     using Type = PhysicalDeviceCoverageReductionModeFeaturesNV;
62899   };
62900 
62901   struct PhysicalDeviceCustomBorderColorFeaturesEXT
62902   {
62903     static const bool allowDuplicate = false;
62904     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
62905 
62906 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62907     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {}) VULKAN_HPP_NOEXCEPT
62908     : customBorderColors( customBorderColors_ ), customBorderColorWithoutFormat( customBorderColorWithoutFormat_ )
62909     {}
62910 
62911     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
62912 
PhysicalDeviceCustomBorderColorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62913     PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62914     {
62915       *this = rhs;
62916     }
62917 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
62918 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62919     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62920     {
62921       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs );
62922       return *this;
62923     }
62924 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62925     PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
62926     {
62927       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) );
62928       return *this;
62929     }
62930 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62931     PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
62932     {
62933       pNext = pNext_;
62934       return *this;
62935     }
62936 
setCustomBorderColorsVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62937     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
62938     {
62939       customBorderColors = customBorderColors_;
62940       return *this;
62941     }
62942 
setCustomBorderColorWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62943     PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
62944     {
62945       customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
62946       return *this;
62947     }
62948 
62949 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62950     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
62951     {
62952       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
62953     }
62954 
operator VkPhysicalDeviceCustomBorderColorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62955     operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
62956     {
62957       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>( this );
62958     }
62959 
62960 
62961 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
62962     auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const& ) const = default;
62963 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62964     bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62965     {
62966       return ( sType == rhs.sType )
62967           && ( pNext == rhs.pNext )
62968           && ( customBorderColors == rhs.customBorderColors )
62969           && ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat );
62970     }
62971 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT62972     bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
62973     {
62974       return !operator==( rhs );
62975     }
62976 #endif
62977 
62978 
62979 
62980   public:
62981     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
62982     void* pNext = {};
62983     VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {};
62984     VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {};
62985 
62986   };
62987   static_assert( sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorFeaturesEXT ), "struct and wrapper have different size!" );
62988   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
62989 
62990   template <>
62991   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT>
62992   {
62993     using Type = PhysicalDeviceCustomBorderColorFeaturesEXT;
62994   };
62995 
62996   struct PhysicalDeviceCustomBorderColorPropertiesEXT
62997   {
62998     static const bool allowDuplicate = false;
62999     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
63000 
63001 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63002     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT(uint32_t maxCustomBorderColorSamplers_ = {}) VULKAN_HPP_NOEXCEPT
63003     : maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ )
63004     {}
63005 
63006     VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63007 
PhysicalDeviceCustomBorderColorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63008     PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63009     {
63010       *this = rhs;
63011     }
63012 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63013 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63014     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63015     {
63016       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs );
63017       return *this;
63018     }
63019 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63020     PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63021     {
63022       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) );
63023       return *this;
63024     }
63025 
63026 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63027     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
63028     {
63029       return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
63030     }
63031 
operator VkPhysicalDeviceCustomBorderColorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63032     operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
63033     {
63034       return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>( this );
63035     }
63036 
63037 
63038 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63039     auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const& ) const = default;
63040 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63041     bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63042     {
63043       return ( sType == rhs.sType )
63044           && ( pNext == rhs.pNext )
63045           && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers );
63046     }
63047 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT63048     bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63049     {
63050       return !operator==( rhs );
63051     }
63052 #endif
63053 
63054 
63055 
63056   public:
63057     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
63058     void* pNext = {};
63059     uint32_t maxCustomBorderColorSamplers = {};
63060 
63061   };
63062   static_assert( sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorPropertiesEXT ), "struct and wrapper have different size!" );
63063   static_assert( std::is_standard_layout<PhysicalDeviceCustomBorderColorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
63064 
63065   template <>
63066   struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT>
63067   {
63068     using Type = PhysicalDeviceCustomBorderColorPropertiesEXT;
63069   };
63070 
63071   struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
63072   {
63073     static const bool allowDuplicate = false;
63074     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
63075 
63076 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63077     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {}) VULKAN_HPP_NOEXCEPT
63078     : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
63079     {}
63080 
63081     VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63082 
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63083     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63084     {
63085       *this = rhs;
63086     }
63087 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63088 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63089     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63090     {
63091       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs );
63092       return *this;
63093     }
63094 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63095     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63096     {
63097       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) );
63098       return *this;
63099     }
63100 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63101     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63102     {
63103       pNext = pNext_;
63104       return *this;
63105     }
63106 
setDedicatedAllocationImageAliasingVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63107     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
63108     {
63109       dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
63110       return *this;
63111     }
63112 
63113 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63114     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63115     {
63116       return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
63117     }
63118 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63119     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
63120     {
63121       return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
63122     }
63123 
63124 
63125 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63126     auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& ) const = default;
63127 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63128     bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63129     {
63130       return ( sType == rhs.sType )
63131           && ( pNext == rhs.pNext )
63132           && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
63133     }
63134 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV63135     bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63136     {
63137       return !operator==( rhs );
63138     }
63139 #endif
63140 
63141 
63142 
63143   public:
63144     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
63145     void* pNext = {};
63146     VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {};
63147 
63148   };
63149   static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" );
63150   static_assert( std::is_standard_layout<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63151 
63152   template <>
63153   struct CppType<StructureType, StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
63154   {
63155     using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
63156   };
63157 
63158   struct PhysicalDeviceDepthClipEnableFeaturesEXT
63159   {
63160     static const bool allowDuplicate = false;
63161     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
63162 
63163 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63164     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT
63165     : depthClipEnable( depthClipEnable_ )
63166     {}
63167 
63168     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63169 
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63170     PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63171     {
63172       *this = rhs;
63173     }
63174 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63175 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63176     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63177     {
63178       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs );
63179       return *this;
63180     }
63181 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63182     PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63183     {
63184       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) );
63185       return *this;
63186     }
63187 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63188     PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63189     {
63190       pNext = pNext_;
63191       return *this;
63192     }
63193 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63194     PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
63195     {
63196       depthClipEnable = depthClipEnable_;
63197       return *this;
63198     }
63199 
63200 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63201     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
63202     {
63203       return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
63204     }
63205 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63206     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63207     {
63208       return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
63209     }
63210 
63211 
63212 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63213     auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const& ) const = default;
63214 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63215     bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63216     {
63217       return ( sType == rhs.sType )
63218           && ( pNext == rhs.pNext )
63219           && ( depthClipEnable == rhs.depthClipEnable );
63220     }
63221 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT63222     bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63223     {
63224       return !operator==( rhs );
63225     }
63226 #endif
63227 
63228 
63229 
63230   public:
63231     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
63232     void* pNext = {};
63233     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
63234 
63235   };
63236   static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" );
63237   static_assert( std::is_standard_layout<PhysicalDeviceDepthClipEnableFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
63238 
63239   template <>
63240   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT>
63241   {
63242     using Type = PhysicalDeviceDepthClipEnableFeaturesEXT;
63243   };
63244 
63245   struct PhysicalDeviceDepthStencilResolveProperties
63246   {
63247     static const bool allowDuplicate = false;
63248     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
63249 
63250 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63251     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties(VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}) VULKAN_HPP_NOEXCEPT
63252     : supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ )
63253     {}
63254 
63255     VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63256 
PhysicalDeviceDepthStencilResolvePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63257     PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63258     {
63259       *this = rhs;
63260     }
63261 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63262 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63263     PhysicalDeviceDepthStencilResolveProperties & operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63264     {
63265       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const *>( &rhs );
63266       return *this;
63267     }
63268 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63269     PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63270     {
63271       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDepthStencilResolveProperties ) );
63272       return *this;
63273     }
63274 
63275 
operator VkPhysicalDeviceDepthStencilResolveProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63276     operator VkPhysicalDeviceDepthStencilResolveProperties const&() const VULKAN_HPP_NOEXCEPT
63277     {
63278       return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>( this );
63279     }
63280 
operator VkPhysicalDeviceDepthStencilResolveProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63281     operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
63282     {
63283       return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>( this );
63284     }
63285 
63286 
63287 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63288     auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const& ) const = default;
63289 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63290     bool operator==( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63291     {
63292       return ( sType == rhs.sType )
63293           && ( pNext == rhs.pNext )
63294           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
63295           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
63296           && ( independentResolveNone == rhs.independentResolveNone )
63297           && ( independentResolve == rhs.independentResolve );
63298     }
63299 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties63300     bool operator!=( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63301     {
63302       return !operator==( rhs );
63303     }
63304 #endif
63305 
63306 
63307 
63308   public:
63309     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
63310     void* pNext = {};
63311     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
63312     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
63313     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
63314     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
63315 
63316   };
63317   static_assert( sizeof( PhysicalDeviceDepthStencilResolveProperties ) == sizeof( VkPhysicalDeviceDepthStencilResolveProperties ), "struct and wrapper have different size!" );
63318   static_assert( std::is_standard_layout<PhysicalDeviceDepthStencilResolveProperties>::value, "struct wrapper is not a standard layout!" );
63319 
63320   template <>
63321   struct CppType<StructureType, StructureType::ePhysicalDeviceDepthStencilResolveProperties>
63322   {
63323     using Type = PhysicalDeviceDepthStencilResolveProperties;
63324   };
63325   using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
63326 
63327   struct PhysicalDeviceDescriptorIndexingFeatures
63328   {
63329     static const bool allowDuplicate = false;
63330     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
63331 
63332 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63333     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}) VULKAN_HPP_NOEXCEPT
63334     : shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ), shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ), shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ), shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ), shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ), shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ), shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ), shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ), shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ), shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ), descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ), descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ), descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ), descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ), descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ), descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ), descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ), descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ), descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ), runtimeDescriptorArray( runtimeDescriptorArray_ )
63335     {}
63336 
63337     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63338 
PhysicalDeviceDescriptorIndexingFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63339     PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
63340     {
63341       *this = rhs;
63342     }
63343 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63344 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63345     PhysicalDeviceDescriptorIndexingFeatures & operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
63346     {
63347       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs );
63348       return *this;
63349     }
63350 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63351     PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
63352     {
63353       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDescriptorIndexingFeatures ) );
63354       return *this;
63355     }
63356 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63357     PhysicalDeviceDescriptorIndexingFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63358     {
63359       pNext = pNext_;
63360       return *this;
63361     }
63362 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63363     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
63364     {
63365       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
63366       return *this;
63367     }
63368 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63369     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
63370     {
63371       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
63372       return *this;
63373     }
63374 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63375     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
63376     {
63377       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
63378       return *this;
63379     }
63380 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63381     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63382     {
63383       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
63384       return *this;
63385     }
63386 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63387     PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63388     {
63389       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
63390       return *this;
63391     }
63392 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63393     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63394     {
63395       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
63396       return *this;
63397     }
63398 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63399     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63400     {
63401       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
63402       return *this;
63403     }
63404 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63405     PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63406     {
63407       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
63408       return *this;
63409     }
63410 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63411     PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63412     {
63413       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
63414       return *this;
63415     }
63416 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63417     PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
63418     {
63419       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
63420       return *this;
63421     }
63422 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63423     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63424     {
63425       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
63426       return *this;
63427     }
63428 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63429     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63430     {
63431       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
63432       return *this;
63433     }
63434 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63435     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63436     {
63437       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
63438       return *this;
63439     }
63440 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63441     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63442     {
63443       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
63444       return *this;
63445     }
63446 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63447     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63448     {
63449       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
63450       return *this;
63451     }
63452 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63453     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
63454     {
63455       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
63456       return *this;
63457     }
63458 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63459     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
63460     {
63461       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
63462       return *this;
63463     }
63464 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63465     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
63466     {
63467       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
63468       return *this;
63469     }
63470 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63471     PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
63472     {
63473       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
63474       return *this;
63475     }
63476 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63477     PhysicalDeviceDescriptorIndexingFeatures & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
63478     {
63479       runtimeDescriptorArray = runtimeDescriptorArray_;
63480       return *this;
63481     }
63482 
63483 
operator VkPhysicalDeviceDescriptorIndexingFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63484     operator VkPhysicalDeviceDescriptorIndexingFeatures const&() const VULKAN_HPP_NOEXCEPT
63485     {
63486       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
63487     }
63488 
operator VkPhysicalDeviceDescriptorIndexingFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63489     operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
63490     {
63491       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>( this );
63492     }
63493 
63494 
63495 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63496     auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const& ) const = default;
63497 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63498     bool operator==( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
63499     {
63500       return ( sType == rhs.sType )
63501           && ( pNext == rhs.pNext )
63502           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
63503           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
63504           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
63505           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
63506           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
63507           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
63508           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
63509           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
63510           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
63511           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
63512           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
63513           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
63514           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
63515           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
63516           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
63517           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
63518           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
63519           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
63520           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
63521           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
63522     }
63523 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures63524     bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
63525     {
63526       return !operator==( rhs );
63527     }
63528 #endif
63529 
63530 
63531 
63532   public:
63533     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
63534     void* pNext = {};
63535     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
63536     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
63537     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
63538     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
63539     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
63540     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
63541     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
63542     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
63543     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
63544     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
63545     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
63546     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
63547     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
63548     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
63549     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
63550     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
63551     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
63552     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
63553     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
63554     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
63555 
63556   };
63557   static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeatures ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeatures ), "struct and wrapper have different size!" );
63558   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingFeatures>::value, "struct wrapper is not a standard layout!" );
63559 
63560   template <>
63561   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingFeatures>
63562   {
63563     using Type = PhysicalDeviceDescriptorIndexingFeatures;
63564   };
63565   using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
63566 
63567   struct PhysicalDeviceDescriptorIndexingProperties
63568   {
63569     static const bool allowDuplicate = false;
63570     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
63571 
63572 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63573     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties(uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, uint32_t maxPerStageUpdateAfterBindResources_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}) VULKAN_HPP_NOEXCEPT
63574     : maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ), shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ), shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ), shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ), shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ), shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ), robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ), quadDivergentImplicitLod( quadDivergentImplicitLod_ ), maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ), maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ), maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ), maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ), maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ), maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ), maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ), maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ), maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ), maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ), maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ), maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ), maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
63575     {}
63576 
63577     VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63578 
PhysicalDeviceDescriptorIndexingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63579     PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63580     {
63581       *this = rhs;
63582     }
63583 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63584 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63585     PhysicalDeviceDescriptorIndexingProperties & operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63586     {
63587       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const *>( &rhs );
63588       return *this;
63589     }
63590 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63591     PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
63592     {
63593       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDescriptorIndexingProperties ) );
63594       return *this;
63595     }
63596 
63597 
operator VkPhysicalDeviceDescriptorIndexingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63598     operator VkPhysicalDeviceDescriptorIndexingProperties const&() const VULKAN_HPP_NOEXCEPT
63599     {
63600       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>( this );
63601     }
63602 
operator VkPhysicalDeviceDescriptorIndexingProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63603     operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
63604     {
63605       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>( this );
63606     }
63607 
63608 
63609 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63610     auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const& ) const = default;
63611 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63612     bool operator==( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63613     {
63614       return ( sType == rhs.sType )
63615           && ( pNext == rhs.pNext )
63616           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
63617           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
63618           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
63619           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
63620           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
63621           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
63622           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
63623           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
63624           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
63625           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
63626           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
63627           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
63628           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
63629           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
63630           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
63631           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
63632           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
63633           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
63634           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
63635           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
63636           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
63637           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
63638           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
63639     }
63640 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties63641     bool operator!=( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
63642     {
63643       return !operator==( rhs );
63644     }
63645 #endif
63646 
63647 
63648 
63649   public:
63650     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
63651     void* pNext = {};
63652     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
63653     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
63654     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
63655     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
63656     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
63657     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
63658     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
63659     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
63660     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
63661     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
63662     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
63663     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
63664     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
63665     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
63666     uint32_t maxPerStageUpdateAfterBindResources = {};
63667     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
63668     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
63669     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
63670     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
63671     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
63672     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
63673     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
63674     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
63675 
63676   };
63677   static_assert( sizeof( PhysicalDeviceDescriptorIndexingProperties ) == sizeof( VkPhysicalDeviceDescriptorIndexingProperties ), "struct and wrapper have different size!" );
63678   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingProperties>::value, "struct wrapper is not a standard layout!" );
63679 
63680   template <>
63681   struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingProperties>
63682   {
63683     using Type = PhysicalDeviceDescriptorIndexingProperties;
63684   };
63685   using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
63686 
63687   struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
63688   {
63689     static const bool allowDuplicate = false;
63690     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
63691 
63692 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63693     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {}) VULKAN_HPP_NOEXCEPT
63694     : deviceGeneratedCommands( deviceGeneratedCommands_ )
63695     {}
63696 
63697     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63698 
PhysicalDeviceDeviceGeneratedCommandsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63699     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63700     {
63701       *this = rhs;
63702     }
63703 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63704 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63705     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63706     {
63707       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs );
63708       return *this;
63709     }
63710 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63711     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63712     {
63713       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) );
63714       return *this;
63715     }
63716 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63717     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63718     {
63719       pNext = pNext_;
63720       return *this;
63721     }
63722 
setDeviceGeneratedCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63723     PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
63724     {
63725       deviceGeneratedCommands = deviceGeneratedCommands_;
63726       return *this;
63727     }
63728 
63729 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63730     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63731     {
63732       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
63733     }
63734 
operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63735     operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
63736     {
63737       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>( this );
63738     }
63739 
63740 
63741 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63742     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& ) const = default;
63743 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63744     bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63745     {
63746       return ( sType == rhs.sType )
63747           && ( pNext == rhs.pNext )
63748           && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands );
63749     }
63750 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV63751     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63752     {
63753       return !operator==( rhs );
63754     }
63755 #endif
63756 
63757 
63758 
63759   public:
63760     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
63761     void* pNext = {};
63762     VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {};
63763 
63764   };
63765   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV ), "struct and wrapper have different size!" );
63766   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
63767 
63768   template <>
63769   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
63770   {
63771     using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
63772   };
63773 
63774   struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
63775   {
63776     static const bool allowDuplicate = false;
63777     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
63778 
63779 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63780     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV(uint32_t maxGraphicsShaderGroupCount_ = {}, uint32_t maxIndirectSequenceCount_ = {}, uint32_t maxIndirectCommandsTokenCount_ = {}, uint32_t maxIndirectCommandsStreamCount_ = {}, uint32_t maxIndirectCommandsTokenOffset_ = {}, uint32_t maxIndirectCommandsStreamStride_ = {}, uint32_t minSequencesCountBufferOffsetAlignment_ = {}, uint32_t minSequencesIndexBufferOffsetAlignment_ = {}, uint32_t minIndirectCommandsBufferOffsetAlignment_ = {}) VULKAN_HPP_NOEXCEPT
63781     : maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ ), maxIndirectSequenceCount( maxIndirectSequenceCount_ ), maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ ), maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ ), maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ ), maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ ), minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ ), minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ ), minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ )
63782     {}
63783 
63784     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63785 
PhysicalDeviceDeviceGeneratedCommandsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63786     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63787     {
63788       *this = rhs;
63789     }
63790 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63791 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63792     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63793     {
63794       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs );
63795       return *this;
63796     }
63797 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63798     PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63799     {
63800       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) );
63801       return *this;
63802     }
63803 
63804 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63805     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
63806     {
63807       return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
63808     }
63809 
operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63810     operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
63811     {
63812       return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>( this );
63813     }
63814 
63815 
63816 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63817     auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& ) const = default;
63818 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63819     bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63820     {
63821       return ( sType == rhs.sType )
63822           && ( pNext == rhs.pNext )
63823           && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount )
63824           && ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount )
63825           && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount )
63826           && ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount )
63827           && ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset )
63828           && ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride )
63829           && ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment )
63830           && ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment )
63831           && ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment );
63832     }
63833 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV63834     bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
63835     {
63836       return !operator==( rhs );
63837     }
63838 #endif
63839 
63840 
63841 
63842   public:
63843     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
63844     void* pNext = {};
63845     uint32_t maxGraphicsShaderGroupCount = {};
63846     uint32_t maxIndirectSequenceCount = {};
63847     uint32_t maxIndirectCommandsTokenCount = {};
63848     uint32_t maxIndirectCommandsStreamCount = {};
63849     uint32_t maxIndirectCommandsTokenOffset = {};
63850     uint32_t maxIndirectCommandsStreamStride = {};
63851     uint32_t minSequencesCountBufferOffsetAlignment = {};
63852     uint32_t minSequencesIndexBufferOffsetAlignment = {};
63853     uint32_t minIndirectCommandsBufferOffsetAlignment = {};
63854 
63855   };
63856   static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV ), "struct and wrapper have different size!" );
63857   static_assert( std::is_standard_layout<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
63858 
63859   template <>
63860   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
63861   {
63862     using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
63863   };
63864 
63865   struct PhysicalDeviceDeviceMemoryReportFeaturesEXT
63866   {
63867     static const bool allowDuplicate = false;
63868     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
63869 
63870 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63871     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {}) VULKAN_HPP_NOEXCEPT
63872     : deviceMemoryReport( deviceMemoryReport_ )
63873     {}
63874 
63875     VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63876 
PhysicalDeviceDeviceMemoryReportFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63877     PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63878     {
63879       *this = rhs;
63880     }
63881 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63882 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63883     PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63884     {
63885       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs );
63886       return *this;
63887     }
63888 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63889     PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
63890     {
63891       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) );
63892       return *this;
63893     }
63894 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63895     PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63896     {
63897       pNext = pNext_;
63898       return *this;
63899     }
63900 
setDeviceMemoryReportVULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63901     PhysicalDeviceDeviceMemoryReportFeaturesEXT & setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT
63902     {
63903       deviceMemoryReport = deviceMemoryReport_;
63904       return *this;
63905     }
63906 
63907 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63908     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
63909     {
63910       return *reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
63911     }
63912 
operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63913     operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
63914     {
63915       return *reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>( this );
63916     }
63917 
63918 
63919 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
63920     auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& ) const = default;
63921 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63922     bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63923     {
63924       return ( sType == rhs.sType )
63925           && ( pNext == rhs.pNext )
63926           && ( deviceMemoryReport == rhs.deviceMemoryReport );
63927     }
63928 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT63929     bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
63930     {
63931       return !operator==( rhs );
63932     }
63933 #endif
63934 
63935 
63936 
63937   public:
63938     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
63939     void* pNext = {};
63940     VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {};
63941 
63942   };
63943   static_assert( sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) == sizeof( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT ), "struct and wrapper have different size!" );
63944   static_assert( std::is_standard_layout<PhysicalDeviceDeviceMemoryReportFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
63945 
63946   template <>
63947   struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT>
63948   {
63949     using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT;
63950   };
63951 
63952   struct PhysicalDeviceDiagnosticsConfigFeaturesNV
63953   {
63954     static const bool allowDuplicate = false;
63955     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
63956 
63957 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63958     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {}) VULKAN_HPP_NOEXCEPT
63959     : diagnosticsConfig( diagnosticsConfig_ )
63960     {}
63961 
63962     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
63963 
PhysicalDeviceDiagnosticsConfigFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63964     PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63965     {
63966       *this = rhs;
63967     }
63968 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
63969 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63970     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63971     {
63972       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs );
63973       return *this;
63974     }
63975 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63976     PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
63977     {
63978       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) );
63979       return *this;
63980     }
63981 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63982     PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
63983     {
63984       pNext = pNext_;
63985       return *this;
63986     }
63987 
setDiagnosticsConfigVULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63988     PhysicalDeviceDiagnosticsConfigFeaturesNV & setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
63989     {
63990       diagnosticsConfig = diagnosticsConfig_;
63991       return *this;
63992     }
63993 
63994 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV63995     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
63996     {
63997       return *reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
63998     }
63999 
operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64000     operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
64001     {
64002       return *reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>( this );
64003     }
64004 
64005 
64006 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64007     auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const& ) const = default;
64008 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64009     bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64010     {
64011       return ( sType == rhs.sType )
64012           && ( pNext == rhs.pNext )
64013           && ( diagnosticsConfig == rhs.diagnosticsConfig );
64014     }
64015 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV64016     bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64017     {
64018       return !operator==( rhs );
64019     }
64020 #endif
64021 
64022 
64023 
64024   public:
64025     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
64026     void* pNext = {};
64027     VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {};
64028 
64029   };
64030   static_assert( sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) == sizeof( VkPhysicalDeviceDiagnosticsConfigFeaturesNV ), "struct and wrapper have different size!" );
64031   static_assert( std::is_standard_layout<PhysicalDeviceDiagnosticsConfigFeaturesNV>::value, "struct wrapper is not a standard layout!" );
64032 
64033   template <>
64034   struct CppType<StructureType, StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV>
64035   {
64036     using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV;
64037   };
64038 
64039   struct PhysicalDeviceDiscardRectanglePropertiesEXT
64040   {
64041     static const bool allowDuplicate = false;
64042     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
64043 
64044 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64045     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT(uint32_t maxDiscardRectangles_ = {}) VULKAN_HPP_NOEXCEPT
64046     : maxDiscardRectangles( maxDiscardRectangles_ )
64047     {}
64048 
64049     VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64050 
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64051     PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64052     {
64053       *this = rhs;
64054     }
64055 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64056 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64057     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64058     {
64059       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs );
64060       return *this;
64061     }
64062 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64063     PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64064     {
64065       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) );
64066       return *this;
64067     }
64068 
64069 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64070     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64071     {
64072       return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
64073     }
64074 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64075     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
64076     {
64077       return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
64078     }
64079 
64080 
64081 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64082     auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const& ) const = default;
64083 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64084     bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64085     {
64086       return ( sType == rhs.sType )
64087           && ( pNext == rhs.pNext )
64088           && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
64089     }
64090 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT64091     bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64092     {
64093       return !operator==( rhs );
64094     }
64095 #endif
64096 
64097 
64098 
64099   public:
64100     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
64101     void* pNext = {};
64102     uint32_t maxDiscardRectangles = {};
64103 
64104   };
64105   static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" );
64106   static_assert( std::is_standard_layout<PhysicalDeviceDiscardRectanglePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64107 
64108   template <>
64109   struct CppType<StructureType, StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT>
64110   {
64111     using Type = PhysicalDeviceDiscardRectanglePropertiesEXT;
64112   };
64113 
64114   struct PhysicalDeviceDriverProperties
64115   {
64116     static const bool allowDuplicate = false;
64117     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties;
64118 
64119 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64120     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties(VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, std::array<char,VK_MAX_DRIVER_NAME_SIZE> const& driverName_ = {}, std::array<char,VK_MAX_DRIVER_INFO_SIZE> const& driverInfo_ = {}, VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}) VULKAN_HPP_NOEXCEPT
64121     : driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ )
64122     {}
64123 
64124     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64125 
PhysicalDeviceDriverPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64126     PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64127     {
64128       *this = rhs;
64129     }
64130 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64131 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64132     PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64133     {
64134       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const *>( &rhs );
64135       return *this;
64136     }
64137 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64138     PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64139     {
64140       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceDriverProperties ) );
64141       return *this;
64142     }
64143 
64144 
operator VkPhysicalDeviceDriverProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64145     operator VkPhysicalDeviceDriverProperties const&() const VULKAN_HPP_NOEXCEPT
64146     {
64147       return *reinterpret_cast<const VkPhysicalDeviceDriverProperties*>( this );
64148     }
64149 
operator VkPhysicalDeviceDriverProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64150     operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
64151     {
64152       return *reinterpret_cast<VkPhysicalDeviceDriverProperties*>( this );
64153     }
64154 
64155 
64156 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64157     auto operator<=>( PhysicalDeviceDriverProperties const& ) const = default;
64158 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64159     bool operator==( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64160     {
64161       return ( sType == rhs.sType )
64162           && ( pNext == rhs.pNext )
64163           && ( driverID == rhs.driverID )
64164           && ( driverName == rhs.driverName )
64165           && ( driverInfo == rhs.driverInfo )
64166           && ( conformanceVersion == rhs.conformanceVersion );
64167     }
64168 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties64169     bool operator!=( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64170     {
64171       return !operator==( rhs );
64172     }
64173 #endif
64174 
64175 
64176 
64177   public:
64178     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties;
64179     void* pNext = {};
64180     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
64181     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
64182     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
64183     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
64184 
64185   };
64186   static_assert( sizeof( PhysicalDeviceDriverProperties ) == sizeof( VkPhysicalDeviceDriverProperties ), "struct and wrapper have different size!" );
64187   static_assert( std::is_standard_layout<PhysicalDeviceDriverProperties>::value, "struct wrapper is not a standard layout!" );
64188 
64189   template <>
64190   struct CppType<StructureType, StructureType::ePhysicalDeviceDriverProperties>
64191   {
64192     using Type = PhysicalDeviceDriverProperties;
64193   };
64194   using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
64195 
64196   struct PhysicalDeviceExclusiveScissorFeaturesNV
64197   {
64198     static const bool allowDuplicate = false;
64199     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
64200 
64201 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64202     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {}) VULKAN_HPP_NOEXCEPT
64203     : exclusiveScissor( exclusiveScissor_ )
64204     {}
64205 
64206     VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64207 
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64208     PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64209     {
64210       *this = rhs;
64211     }
64212 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64213 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64214     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64215     {
64216       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs );
64217       return *this;
64218     }
64219 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64220     PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
64221     {
64222       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) );
64223       return *this;
64224     }
64225 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64226     PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64227     {
64228       pNext = pNext_;
64229       return *this;
64230     }
64231 
setExclusiveScissorVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64232     PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT
64233     {
64234       exclusiveScissor = exclusiveScissor_;
64235       return *this;
64236     }
64237 
64238 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64239     operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
64240     {
64241       return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
64242     }
64243 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64244     operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
64245     {
64246       return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
64247     }
64248 
64249 
64250 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64251     auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const& ) const = default;
64252 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64253     bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64254     {
64255       return ( sType == rhs.sType )
64256           && ( pNext == rhs.pNext )
64257           && ( exclusiveScissor == rhs.exclusiveScissor );
64258     }
64259 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV64260     bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
64261     {
64262       return !operator==( rhs );
64263     }
64264 #endif
64265 
64266 
64267 
64268   public:
64269     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
64270     void* pNext = {};
64271     VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {};
64272 
64273   };
64274   static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" );
64275   static_assert( std::is_standard_layout<PhysicalDeviceExclusiveScissorFeaturesNV>::value, "struct wrapper is not a standard layout!" );
64276 
64277   template <>
64278   struct CppType<StructureType, StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV>
64279   {
64280     using Type = PhysicalDeviceExclusiveScissorFeaturesNV;
64281   };
64282 
64283   struct PhysicalDeviceExtendedDynamicStateFeaturesEXT
64284   {
64285     static const bool allowDuplicate = false;
64286     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
64287 
64288 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64289     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {}) VULKAN_HPP_NOEXCEPT
64290     : extendedDynamicState( extendedDynamicState_ )
64291     {}
64292 
64293     VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64294 
PhysicalDeviceExtendedDynamicStateFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64295     PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64296     {
64297       *this = rhs;
64298     }
64299 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64300 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64301     PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64302     {
64303       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs );
64304       return *this;
64305     }
64306 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64307     PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64308     {
64309       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) );
64310       return *this;
64311     }
64312 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64313     PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64314     {
64315       pNext = pNext_;
64316       return *this;
64317     }
64318 
setExtendedDynamicStateVULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64319     PhysicalDeviceExtendedDynamicStateFeaturesEXT & setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT
64320     {
64321       extendedDynamicState = extendedDynamicState_;
64322       return *this;
64323     }
64324 
64325 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64326     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64327     {
64328       return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
64329     }
64330 
operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64331     operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64332     {
64333       return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>( this );
64334     }
64335 
64336 
64337 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64338     auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& ) const = default;
64339 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64340     bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64341     {
64342       return ( sType == rhs.sType )
64343           && ( pNext == rhs.pNext )
64344           && ( extendedDynamicState == rhs.extendedDynamicState );
64345     }
64346 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT64347     bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64348     {
64349       return !operator==( rhs );
64350     }
64351 #endif
64352 
64353 
64354 
64355   public:
64356     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
64357     void* pNext = {};
64358     VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {};
64359 
64360   };
64361   static_assert( sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) == sizeof( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT ), "struct and wrapper have different size!" );
64362   static_assert( std::is_standard_layout<PhysicalDeviceExtendedDynamicStateFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64363 
64364   template <>
64365   struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT>
64366   {
64367     using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT;
64368   };
64369 
64370   struct PhysicalDeviceExternalImageFormatInfo
64371   {
64372     static const bool allowDuplicate = false;
64373     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
64374 
64375 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64376     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT
64377     : handleType( handleType_ )
64378     {}
64379 
64380     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64381 
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64382     PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64383     {
64384       *this = rhs;
64385     }
64386 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64387 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64388     PhysicalDeviceExternalImageFormatInfo & operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64389     {
64390       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const *>( &rhs );
64391       return *this;
64392     }
64393 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64394     PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
64395     {
64396       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalImageFormatInfo ) );
64397       return *this;
64398     }
64399 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64400     PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
64401     {
64402       pNext = pNext_;
64403       return *this;
64404     }
64405 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64406     PhysicalDeviceExternalImageFormatInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
64407     {
64408       handleType = handleType_;
64409       return *this;
64410     }
64411 
64412 
operator VkPhysicalDeviceExternalImageFormatInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64413     operator VkPhysicalDeviceExternalImageFormatInfo const&() const VULKAN_HPP_NOEXCEPT
64414     {
64415       return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>( this );
64416     }
64417 
operator VkPhysicalDeviceExternalImageFormatInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64418     operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
64419     {
64420       return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>( this );
64421     }
64422 
64423 
64424 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64425     auto operator<=>( PhysicalDeviceExternalImageFormatInfo const& ) const = default;
64426 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64427     bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
64428     {
64429       return ( sType == rhs.sType )
64430           && ( pNext == rhs.pNext )
64431           && ( handleType == rhs.handleType );
64432     }
64433 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo64434     bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
64435     {
64436       return !operator==( rhs );
64437     }
64438 #endif
64439 
64440 
64441 
64442   public:
64443     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
64444     const void* pNext = {};
64445     VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
64446 
64447   };
64448   static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" );
64449   static_assert( std::is_standard_layout<PhysicalDeviceExternalImageFormatInfo>::value, "struct wrapper is not a standard layout!" );
64450 
64451   template <>
64452   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalImageFormatInfo>
64453   {
64454     using Type = PhysicalDeviceExternalImageFormatInfo;
64455   };
64456   using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
64457 
64458   struct PhysicalDeviceExternalMemoryHostPropertiesEXT
64459   {
64460     static const bool allowDuplicate = false;
64461     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
64462 
64463 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64464     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {}) VULKAN_HPP_NOEXCEPT
64465     : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
64466     {}
64467 
64468     VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64469 
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64470     PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64471     {
64472       *this = rhs;
64473     }
64474 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64475 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64476     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64477     {
64478       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs );
64479       return *this;
64480     }
64481 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64482     PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64483     {
64484       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) );
64485       return *this;
64486     }
64487 
64488 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64489     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64490     {
64491       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
64492     }
64493 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64494     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
64495     {
64496       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
64497     }
64498 
64499 
64500 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64501     auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const& ) const = default;
64502 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64503     bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64504     {
64505       return ( sType == rhs.sType )
64506           && ( pNext == rhs.pNext )
64507           && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
64508     }
64509 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT64510     bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64511     {
64512       return !operator==( rhs );
64513     }
64514 #endif
64515 
64516 
64517 
64518   public:
64519     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
64520     void* pNext = {};
64521     VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {};
64522 
64523   };
64524   static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" );
64525   static_assert( std::is_standard_layout<PhysicalDeviceExternalMemoryHostPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64526 
64527   template <>
64528   struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT>
64529   {
64530     using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT;
64531   };
64532 
64533   struct PhysicalDeviceFloatControlsProperties
64534   {
64535     static const bool allowDuplicate = false;
64536     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties;
64537 
64538 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64539     VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties(VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}) VULKAN_HPP_NOEXCEPT
64540     : denormBehaviorIndependence( denormBehaviorIndependence_ ), roundingModeIndependence( roundingModeIndependence_ ), shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ), shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ), shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ), shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ), shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ), shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ), shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ), shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ), shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ), shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ), shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ), shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ), shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ), shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ), shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
64541     {}
64542 
64543     VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64544 
PhysicalDeviceFloatControlsPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64545     PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64546     {
64547       *this = rhs;
64548     }
64549 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64550 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64551     PhysicalDeviceFloatControlsProperties & operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64552     {
64553       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const *>( &rhs );
64554       return *this;
64555     }
64556 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64557     PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
64558     {
64559       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFloatControlsProperties ) );
64560       return *this;
64561     }
64562 
64563 
operator VkPhysicalDeviceFloatControlsProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64564     operator VkPhysicalDeviceFloatControlsProperties const&() const VULKAN_HPP_NOEXCEPT
64565     {
64566       return *reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>( this );
64567     }
64568 
operator VkPhysicalDeviceFloatControlsProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64569     operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
64570     {
64571       return *reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>( this );
64572     }
64573 
64574 
64575 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64576     auto operator<=>( PhysicalDeviceFloatControlsProperties const& ) const = default;
64577 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64578     bool operator==( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64579     {
64580       return ( sType == rhs.sType )
64581           && ( pNext == rhs.pNext )
64582           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
64583           && ( roundingModeIndependence == rhs.roundingModeIndependence )
64584           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
64585           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
64586           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
64587           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
64588           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
64589           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
64590           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
64591           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
64592           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
64593           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
64594           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
64595           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
64596           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
64597           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
64598           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
64599     }
64600 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties64601     bool operator!=( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
64602     {
64603       return !operator==( rhs );
64604     }
64605 #endif
64606 
64607 
64608 
64609   public:
64610     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties;
64611     void* pNext = {};
64612     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
64613     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
64614     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
64615     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
64616     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
64617     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
64618     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
64619     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
64620     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
64621     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
64622     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
64623     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
64624     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
64625     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
64626     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
64627     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
64628     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
64629 
64630   };
64631   static_assert( sizeof( PhysicalDeviceFloatControlsProperties ) == sizeof( VkPhysicalDeviceFloatControlsProperties ), "struct and wrapper have different size!" );
64632   static_assert( std::is_standard_layout<PhysicalDeviceFloatControlsProperties>::value, "struct wrapper is not a standard layout!" );
64633 
64634   template <>
64635   struct CppType<StructureType, StructureType::ePhysicalDeviceFloatControlsProperties>
64636   {
64637     using Type = PhysicalDeviceFloatControlsProperties;
64638   };
64639   using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
64640 
64641   struct PhysicalDeviceFragmentDensityMap2FeaturesEXT
64642   {
64643     static const bool allowDuplicate = false;
64644     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
64645 
64646 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64647     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {}) VULKAN_HPP_NOEXCEPT
64648     : fragmentDensityMapDeferred( fragmentDensityMapDeferred_ )
64649     {}
64650 
64651     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64652 
PhysicalDeviceFragmentDensityMap2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64653     PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64654     {
64655       *this = rhs;
64656     }
64657 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64658 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64659     PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64660     {
64661       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs );
64662       return *this;
64663     }
64664 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64665     PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64666     {
64667       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) );
64668       return *this;
64669     }
64670 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64671     PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64672     {
64673       pNext = pNext_;
64674       return *this;
64675     }
64676 
setFragmentDensityMapDeferredVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64677     PhysicalDeviceFragmentDensityMap2FeaturesEXT & setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT
64678     {
64679       fragmentDensityMapDeferred = fragmentDensityMapDeferred_;
64680       return *this;
64681     }
64682 
64683 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64684     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64685     {
64686       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
64687     }
64688 
operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64689     operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
64690     {
64691       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>( this );
64692     }
64693 
64694 
64695 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64696     auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& ) const = default;
64697 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64698     bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64699     {
64700       return ( sType == rhs.sType )
64701           && ( pNext == rhs.pNext )
64702           && ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred );
64703     }
64704 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT64705     bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64706     {
64707       return !operator==( rhs );
64708     }
64709 #endif
64710 
64711 
64712 
64713   public:
64714     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
64715     void* pNext = {};
64716     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {};
64717 
64718   };
64719   static_assert( sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT ), "struct and wrapper have different size!" );
64720   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMap2FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64721 
64722   template <>
64723   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT>
64724   {
64725     using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT;
64726   };
64727 
64728   struct PhysicalDeviceFragmentDensityMap2PropertiesEXT
64729   {
64730     static const bool allowDuplicate = false;
64731     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
64732 
64733 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64734     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {}, uint32_t maxSubsampledArrayLayers_ = {}, uint32_t maxDescriptorSetSubsampledSamplers_ = {}) VULKAN_HPP_NOEXCEPT
64735     : subsampledLoads( subsampledLoads_ ), subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ ), maxSubsampledArrayLayers( maxSubsampledArrayLayers_ ), maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ )
64736     {}
64737 
64738     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64739 
PhysicalDeviceFragmentDensityMap2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64740     PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64741     {
64742       *this = rhs;
64743     }
64744 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64745 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64746     PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64747     {
64748       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs );
64749       return *this;
64750     }
64751 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64752     PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64753     {
64754       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) );
64755       return *this;
64756     }
64757 
64758 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64759     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64760     {
64761       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
64762     }
64763 
operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64764     operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
64765     {
64766       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>( this );
64767     }
64768 
64769 
64770 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64771     auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& ) const = default;
64772 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64773     bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64774     {
64775       return ( sType == rhs.sType )
64776           && ( pNext == rhs.pNext )
64777           && ( subsampledLoads == rhs.subsampledLoads )
64778           && ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess )
64779           && ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers )
64780           && ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers );
64781     }
64782 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT64783     bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64784     {
64785       return !operator==( rhs );
64786     }
64787 #endif
64788 
64789 
64790 
64791   public:
64792     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
64793     void* pNext = {};
64794     VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {};
64795     VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {};
64796     uint32_t maxSubsampledArrayLayers = {};
64797     uint32_t maxDescriptorSetSubsampledSamplers = {};
64798 
64799   };
64800   static_assert( sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT ), "struct and wrapper have different size!" );
64801   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMap2PropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64802 
64803   template <>
64804   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT>
64805   {
64806     using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT;
64807   };
64808 
64809   struct PhysicalDeviceFragmentDensityMapFeaturesEXT
64810   {
64811     static const bool allowDuplicate = false;
64812     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
64813 
64814 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64815     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {}) VULKAN_HPP_NOEXCEPT
64816     : fragmentDensityMap( fragmentDensityMap_ ), fragmentDensityMapDynamic( fragmentDensityMapDynamic_ ), fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
64817     {}
64818 
64819     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64820 
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64821     PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64822     {
64823       *this = rhs;
64824     }
64825 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64826 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64827     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64828     {
64829       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs );
64830       return *this;
64831     }
64832 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64833     PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64834     {
64835       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) );
64836       return *this;
64837     }
64838 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64839     PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
64840     {
64841       pNext = pNext_;
64842       return *this;
64843     }
64844 
setFragmentDensityMapVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64845     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT
64846     {
64847       fragmentDensityMap = fragmentDensityMap_;
64848       return *this;
64849     }
64850 
setFragmentDensityMapDynamicVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64851     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT
64852     {
64853       fragmentDensityMapDynamic = fragmentDensityMapDynamic_;
64854       return *this;
64855     }
64856 
setFragmentDensityMapNonSubsampledImagesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64857     PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT
64858     {
64859       fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_;
64860       return *this;
64861     }
64862 
64863 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64864     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
64865     {
64866       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
64867     }
64868 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64869     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
64870     {
64871       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
64872     }
64873 
64874 
64875 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64876     auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const& ) const = default;
64877 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64878     bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64879     {
64880       return ( sType == rhs.sType )
64881           && ( pNext == rhs.pNext )
64882           && ( fragmentDensityMap == rhs.fragmentDensityMap )
64883           && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic )
64884           && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
64885     }
64886 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT64887     bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64888     {
64889       return !operator==( rhs );
64890     }
64891 #endif
64892 
64893 
64894 
64895   public:
64896     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
64897     void* pNext = {};
64898     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {};
64899     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {};
64900     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {};
64901 
64902   };
64903   static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" );
64904   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
64905 
64906   template <>
64907   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT>
64908   {
64909     using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT;
64910   };
64911 
64912   struct PhysicalDeviceFragmentDensityMapPropertiesEXT
64913   {
64914     static const bool allowDuplicate = false;
64915     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
64916 
64917 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64918     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {}) VULKAN_HPP_NOEXCEPT
64919     : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ ), maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ ), fragmentDensityInvocations( fragmentDensityInvocations_ )
64920     {}
64921 
64922     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
64923 
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64924     PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64925     {
64926       *this = rhs;
64927     }
64928 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
64929 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64930     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64931     {
64932       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs );
64933       return *this;
64934     }
64935 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64936     PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
64937     {
64938       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) );
64939       return *this;
64940     }
64941 
64942 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64943     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
64944     {
64945       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
64946     }
64947 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64948     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
64949     {
64950       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
64951     }
64952 
64953 
64954 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
64955     auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const& ) const = default;
64956 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64957     bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64958     {
64959       return ( sType == rhs.sType )
64960           && ( pNext == rhs.pNext )
64961           && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize )
64962           && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize )
64963           && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
64964     }
64965 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT64966     bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
64967     {
64968       return !operator==( rhs );
64969     }
64970 #endif
64971 
64972 
64973 
64974   public:
64975     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
64976     void* pNext = {};
64977     VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {};
64978     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {};
64979     VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {};
64980 
64981   };
64982   static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" );
64983   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
64984 
64985   template <>
64986   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT>
64987   {
64988     using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT;
64989   };
64990 
64991   struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV
64992   {
64993     static const bool allowDuplicate = false;
64994     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
64995 
64996 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV64997     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {}) VULKAN_HPP_NOEXCEPT
64998     : fragmentShaderBarycentric( fragmentShaderBarycentric_ )
64999     {}
65000 
65001     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65002 
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65003     PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65004     {
65005       *this = rhs;
65006     }
65007 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65008 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65009     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65010     {
65011       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV const *>( &rhs );
65012       return *this;
65013     }
65014 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65015     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65016     {
65017       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) );
65018       return *this;
65019     }
65020 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65021     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65022     {
65023       pNext = pNext_;
65024       return *this;
65025     }
65026 
setFragmentShaderBarycentricVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65027     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
65028     {
65029       fragmentShaderBarycentric = fragmentShaderBarycentric_;
65030       return *this;
65031     }
65032 
65033 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65034     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
65035     {
65036       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
65037     }
65038 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65039     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() VULKAN_HPP_NOEXCEPT
65040     {
65041       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
65042     }
65043 
65044 
65045 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65046     auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& ) const = default;
65047 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65048     bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65049     {
65050       return ( sType == rhs.sType )
65051           && ( pNext == rhs.pNext )
65052           && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
65053     }
65054 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV65055     bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65056     {
65057       return !operator==( rhs );
65058     }
65059 #endif
65060 
65061 
65062 
65063   public:
65064     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
65065     void* pNext = {};
65066     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {};
65067 
65068   };
65069   static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" );
65070   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderBarycentricFeaturesNV>::value, "struct wrapper is not a standard layout!" );
65071 
65072   template <>
65073   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV>
65074   {
65075     using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
65076   };
65077 
65078   struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
65079   {
65080     static const bool allowDuplicate = false;
65081     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
65082 
65083 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65084     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {}) VULKAN_HPP_NOEXCEPT
65085     : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ ), fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ ), fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
65086     {}
65087 
65088     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65089 
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65090     PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65091     {
65092       *this = rhs;
65093     }
65094 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65095 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65096     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65097     {
65098       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs );
65099       return *this;
65100     }
65101 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65102     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65103     {
65104       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) );
65105       return *this;
65106     }
65107 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65108     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65109     {
65110       pNext = pNext_;
65111       return *this;
65112     }
65113 
setFragmentShaderSampleInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65114     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
65115     {
65116       fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
65117       return *this;
65118     }
65119 
setFragmentShaderPixelInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65120     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
65121     {
65122       fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
65123       return *this;
65124     }
65125 
setFragmentShaderShadingRateInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65126     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
65127     {
65128       fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
65129       return *this;
65130     }
65131 
65132 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65133     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
65134     {
65135       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
65136     }
65137 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65138     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
65139     {
65140       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
65141     }
65142 
65143 
65144 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65145     auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& ) const = default;
65146 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65147     bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65148     {
65149       return ( sType == rhs.sType )
65150           && ( pNext == rhs.pNext )
65151           && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock )
65152           && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock )
65153           && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
65154     }
65155 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT65156     bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65157     {
65158       return !operator==( rhs );
65159     }
65160 #endif
65161 
65162 
65163 
65164   public:
65165     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
65166     void* pNext = {};
65167     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {};
65168     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {};
65169     VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {};
65170 
65171   };
65172   static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" );
65173   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderInterlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
65174 
65175   template <>
65176   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT>
65177   {
65178     using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
65179   };
65180 
65181   struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
65182   {
65183     static const bool allowDuplicate = false;
65184     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
65185 
65186 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateEnumsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65187     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ = {}, VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ = {}, VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ = {}) VULKAN_HPP_NOEXCEPT
65188     : fragmentShadingRateEnums( fragmentShadingRateEnums_ ), supersampleFragmentShadingRates( supersampleFragmentShadingRates_ ), noInvocationFragmentShadingRates( noInvocationFragmentShadingRates_ )
65189     {}
65190 
65191     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65192 
PhysicalDeviceFragmentShadingRateEnumsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65193     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65194     {
65195       *this = rhs;
65196     }
65197 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65198 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65199     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65200     {
65201       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const *>( &rhs );
65202       return *this;
65203     }
65204 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65205     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65206     {
65207       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV ) );
65208       return *this;
65209     }
65210 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65211     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65212     {
65213       pNext = pNext_;
65214       return *this;
65215     }
65216 
setFragmentShadingRateEnumsVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65217     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT
65218     {
65219       fragmentShadingRateEnums = fragmentShadingRateEnums_;
65220       return *this;
65221     }
65222 
setSupersampleFragmentShadingRatesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65223     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setSupersampleFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
65224     {
65225       supersampleFragmentShadingRates = supersampleFragmentShadingRates_;
65226       return *this;
65227     }
65228 
setNoInvocationFragmentShadingRatesVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65229     PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setNoInvocationFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
65230     {
65231       noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_;
65232       return *this;
65233     }
65234 
65235 
operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65236     operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
65237     {
65238       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>( this );
65239     }
65240 
operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65241     operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT
65242     {
65243       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>( this );
65244     }
65245 
65246 
65247 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65248     auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& ) const = default;
65249 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65250     bool operator==( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65251     {
65252       return ( sType == rhs.sType )
65253           && ( pNext == rhs.pNext )
65254           && ( fragmentShadingRateEnums == rhs.fragmentShadingRateEnums )
65255           && ( supersampleFragmentShadingRates == rhs.supersampleFragmentShadingRates )
65256           && ( noInvocationFragmentShadingRates == rhs.noInvocationFragmentShadingRates );
65257     }
65258 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV65259     bool operator!=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65260     {
65261       return !operator==( rhs );
65262     }
65263 #endif
65264 
65265 
65266 
65267   public:
65268     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
65269     void* pNext = {};
65270     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums = {};
65271     VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates = {};
65272     VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates = {};
65273 
65274   };
65275   static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV ), "struct and wrapper have different size!" );
65276   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
65277 
65278   template <>
65279   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV>
65280   {
65281     using Type = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
65282   };
65283 
65284   struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
65285   {
65286     static const bool allowDuplicate = false;
65287     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
65288 
65289 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateEnumsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65290     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV(VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1) VULKAN_HPP_NOEXCEPT
65291     : maxFragmentShadingRateInvocationCount( maxFragmentShadingRateInvocationCount_ )
65292     {}
65293 
65294     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65295 
PhysicalDeviceFragmentShadingRateEnumsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65296     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65297     {
65298       *this = rhs;
65299     }
65300 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65301 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65302     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65303     {
65304       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const *>( &rhs );
65305       return *this;
65306     }
65307 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65308     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
65309     {
65310       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV ) );
65311       return *this;
65312     }
65313 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65314     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65315     {
65316       pNext = pNext_;
65317       return *this;
65318     }
65319 
setMaxFragmentShadingRateInvocationCountVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65320     PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setMaxFragmentShadingRateInvocationCount( VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ ) VULKAN_HPP_NOEXCEPT
65321     {
65322       maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount_;
65323       return *this;
65324     }
65325 
65326 
operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65327     operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
65328     {
65329       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>( this );
65330     }
65331 
operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65332     operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT
65333     {
65334       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>( this );
65335     }
65336 
65337 
65338 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65339     auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& ) const = default;
65340 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65341     bool operator==( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65342     {
65343       return ( sType == rhs.sType )
65344           && ( pNext == rhs.pNext )
65345           && ( maxFragmentShadingRateInvocationCount == rhs.maxFragmentShadingRateInvocationCount );
65346     }
65347 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV65348     bool operator!=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
65349     {
65350       return !operator==( rhs );
65351     }
65352 #endif
65353 
65354 
65355 
65356   public:
65357     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
65358     void* pNext = {};
65359     VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
65360 
65361   };
65362   static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV ) == sizeof( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV ), "struct and wrapper have different size!" );
65363   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
65364 
65365   template <>
65366   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV>
65367   {
65368     using Type = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
65369   };
65370 
65371   struct PhysicalDeviceFragmentShadingRateFeaturesKHR
65372   {
65373     static const bool allowDuplicate = false;
65374     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
65375 
65376 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRateFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65377     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {}) VULKAN_HPP_NOEXCEPT
65378     : pipelineFragmentShadingRate( pipelineFragmentShadingRate_ ), primitiveFragmentShadingRate( primitiveFragmentShadingRate_ ), attachmentFragmentShadingRate( attachmentFragmentShadingRate_ )
65379     {}
65380 
65381     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65382 
PhysicalDeviceFragmentShadingRateFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65383     PhysicalDeviceFragmentShadingRateFeaturesKHR( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65384     {
65385       *this = rhs;
65386     }
65387 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65388 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65389     PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65390     {
65391       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs );
65392       return *this;
65393     }
65394 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65395     PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65396     {
65397       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateFeaturesKHR ) );
65398       return *this;
65399     }
65400 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65401     PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65402     {
65403       pNext = pNext_;
65404       return *this;
65405     }
65406 
setPipelineFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65407     PhysicalDeviceFragmentShadingRateFeaturesKHR & setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
65408     {
65409       pipelineFragmentShadingRate = pipelineFragmentShadingRate_;
65410       return *this;
65411     }
65412 
setPrimitiveFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65413     PhysicalDeviceFragmentShadingRateFeaturesKHR & setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
65414     {
65415       primitiveFragmentShadingRate = primitiveFragmentShadingRate_;
65416       return *this;
65417     }
65418 
setAttachmentFragmentShadingRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65419     PhysicalDeviceFragmentShadingRateFeaturesKHR & setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
65420     {
65421       attachmentFragmentShadingRate = attachmentFragmentShadingRate_;
65422       return *this;
65423     }
65424 
65425 
operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65426     operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
65427     {
65428       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>( this );
65429     }
65430 
operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65431     operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT
65432     {
65433       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>( this );
65434     }
65435 
65436 
65437 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65438     auto operator<=>( PhysicalDeviceFragmentShadingRateFeaturesKHR const& ) const = default;
65439 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65440     bool operator==( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65441     {
65442       return ( sType == rhs.sType )
65443           && ( pNext == rhs.pNext )
65444           && ( pipelineFragmentShadingRate == rhs.pipelineFragmentShadingRate )
65445           && ( primitiveFragmentShadingRate == rhs.primitiveFragmentShadingRate )
65446           && ( attachmentFragmentShadingRate == rhs.attachmentFragmentShadingRate );
65447     }
65448 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR65449     bool operator!=( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65450     {
65451       return !operator==( rhs );
65452     }
65453 #endif
65454 
65455 
65456 
65457   public:
65458     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
65459     void* pNext = {};
65460     VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate = {};
65461     VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate = {};
65462     VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate = {};
65463 
65464   };
65465   static_assert( sizeof( PhysicalDeviceFragmentShadingRateFeaturesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateFeaturesKHR ), "struct and wrapper have different size!" );
65466   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRateFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
65467 
65468   template <>
65469   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR>
65470   {
65471     using Type = PhysicalDeviceFragmentShadingRateFeaturesKHR;
65472   };
65473 
65474   struct PhysicalDeviceFragmentShadingRatePropertiesKHR
65475   {
65476     static const bool allowDuplicate = false;
65477     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
65478 
65479 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceFragmentShadingRatePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65480     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR(VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize_ = {}, uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports_ = {}, VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize_ = {}, uint32_t maxFragmentSizeAspectRatio_ = {}, uint32_t maxFragmentShadingRateCoverageSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner_ = {}) VULKAN_HPP_NOEXCEPT
65481     : minFragmentShadingRateAttachmentTexelSize( minFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSize( maxFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSizeAspectRatio( maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ ), primitiveFragmentShadingRateWithMultipleViewports( primitiveFragmentShadingRateWithMultipleViewports_ ), layeredShadingRateAttachments( layeredShadingRateAttachments_ ), fragmentShadingRateNonTrivialCombinerOps( fragmentShadingRateNonTrivialCombinerOps_ ), maxFragmentSize( maxFragmentSize_ ), maxFragmentSizeAspectRatio( maxFragmentSizeAspectRatio_ ), maxFragmentShadingRateCoverageSamples( maxFragmentShadingRateCoverageSamples_ ), maxFragmentShadingRateRasterizationSamples( maxFragmentShadingRateRasterizationSamples_ ), fragmentShadingRateWithShaderDepthStencilWrites( fragmentShadingRateWithShaderDepthStencilWrites_ ), fragmentShadingRateWithSampleMask( fragmentShadingRateWithSampleMask_ ), fragmentShadingRateWithShaderSampleMask( fragmentShadingRateWithShaderSampleMask_ ), fragmentShadingRateWithConservativeRasterization( fragmentShadingRateWithConservativeRasterization_ ), fragmentShadingRateWithFragmentShaderInterlock( fragmentShadingRateWithFragmentShaderInterlock_ ), fragmentShadingRateWithCustomSampleLocations( fragmentShadingRateWithCustomSampleLocations_ ), fragmentShadingRateStrictMultiplyCombiner( fragmentShadingRateStrictMultiplyCombiner_ )
65482     {}
65483 
65484     VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65485 
PhysicalDeviceFragmentShadingRatePropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65486     PhysicalDeviceFragmentShadingRatePropertiesKHR( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65487     {
65488       *this = rhs;
65489     }
65490 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65491 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65492     PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65493     {
65494       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs );
65495       return *this;
65496     }
65497 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65498     PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
65499     {
65500       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRatePropertiesKHR ) );
65501       return *this;
65502     }
65503 
65504 
operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65505     operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
65506     {
65507       return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>( this );
65508     }
65509 
operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65510     operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT
65511     {
65512       return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>( this );
65513     }
65514 
65515 
65516 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65517     auto operator<=>( PhysicalDeviceFragmentShadingRatePropertiesKHR const& ) const = default;
65518 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65519     bool operator==( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65520     {
65521       return ( sType == rhs.sType )
65522           && ( pNext == rhs.pNext )
65523           && ( minFragmentShadingRateAttachmentTexelSize == rhs.minFragmentShadingRateAttachmentTexelSize )
65524           && ( maxFragmentShadingRateAttachmentTexelSize == rhs.maxFragmentShadingRateAttachmentTexelSize )
65525           && ( maxFragmentShadingRateAttachmentTexelSizeAspectRatio == rhs.maxFragmentShadingRateAttachmentTexelSizeAspectRatio )
65526           && ( primitiveFragmentShadingRateWithMultipleViewports == rhs.primitiveFragmentShadingRateWithMultipleViewports )
65527           && ( layeredShadingRateAttachments == rhs.layeredShadingRateAttachments )
65528           && ( fragmentShadingRateNonTrivialCombinerOps == rhs.fragmentShadingRateNonTrivialCombinerOps )
65529           && ( maxFragmentSize == rhs.maxFragmentSize )
65530           && ( maxFragmentSizeAspectRatio == rhs.maxFragmentSizeAspectRatio )
65531           && ( maxFragmentShadingRateCoverageSamples == rhs.maxFragmentShadingRateCoverageSamples )
65532           && ( maxFragmentShadingRateRasterizationSamples == rhs.maxFragmentShadingRateRasterizationSamples )
65533           && ( fragmentShadingRateWithShaderDepthStencilWrites == rhs.fragmentShadingRateWithShaderDepthStencilWrites )
65534           && ( fragmentShadingRateWithSampleMask == rhs.fragmentShadingRateWithSampleMask )
65535           && ( fragmentShadingRateWithShaderSampleMask == rhs.fragmentShadingRateWithShaderSampleMask )
65536           && ( fragmentShadingRateWithConservativeRasterization == rhs.fragmentShadingRateWithConservativeRasterization )
65537           && ( fragmentShadingRateWithFragmentShaderInterlock == rhs.fragmentShadingRateWithFragmentShaderInterlock )
65538           && ( fragmentShadingRateWithCustomSampleLocations == rhs.fragmentShadingRateWithCustomSampleLocations )
65539           && ( fragmentShadingRateStrictMultiplyCombiner == rhs.fragmentShadingRateStrictMultiplyCombiner );
65540     }
65541 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR65542     bool operator!=( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
65543     {
65544       return !operator==( rhs );
65545     }
65546 #endif
65547 
65548 
65549 
65550   public:
65551     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
65552     void* pNext = {};
65553     VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize = {};
65554     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize = {};
65555     uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio = {};
65556     VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports = {};
65557     VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments = {};
65558     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps = {};
65559     VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize = {};
65560     uint32_t maxFragmentSizeAspectRatio = {};
65561     uint32_t maxFragmentShadingRateCoverageSamples = {};
65562     VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
65563     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites = {};
65564     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask = {};
65565     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask = {};
65566     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization = {};
65567     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock = {};
65568     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations = {};
65569     VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner = {};
65570 
65571   };
65572   static_assert( sizeof( PhysicalDeviceFragmentShadingRatePropertiesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRatePropertiesKHR ), "struct and wrapper have different size!" );
65573   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShadingRatePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
65574 
65575   template <>
65576   struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR>
65577   {
65578     using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR;
65579   };
65580 
65581   struct PhysicalDeviceGroupProperties
65582   {
65583     static const bool allowDuplicate = false;
65584     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties;
65585 
65586 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65587     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties(uint32_t physicalDeviceCount_ = {}, std::array<VULKAN_HPP_NAMESPACE::PhysicalDevice,VK_MAX_DEVICE_GROUP_SIZE> const& physicalDevices_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {}) VULKAN_HPP_NOEXCEPT
65588     : physicalDeviceCount( physicalDeviceCount_ ), physicalDevices( physicalDevices_ ), subsetAllocation( subsetAllocation_ )
65589     {}
65590 
65591     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65592 
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65593     PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65594     {
65595       *this = rhs;
65596     }
65597 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65598 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65599     PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65600     {
65601       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const *>( &rhs );
65602       return *this;
65603     }
65604 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65605     PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65606     {
65607       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceGroupProperties ) );
65608       return *this;
65609     }
65610 
65611 
operator VkPhysicalDeviceGroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65612     operator VkPhysicalDeviceGroupProperties const&() const VULKAN_HPP_NOEXCEPT
65613     {
65614       return *reinterpret_cast<const VkPhysicalDeviceGroupProperties*>( this );
65615     }
65616 
operator VkPhysicalDeviceGroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65617     operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
65618     {
65619       return *reinterpret_cast<VkPhysicalDeviceGroupProperties*>( this );
65620     }
65621 
65622 
65623 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65624     auto operator<=>( PhysicalDeviceGroupProperties const& ) const = default;
65625 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65626     bool operator==( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65627     {
65628       return ( sType == rhs.sType )
65629           && ( pNext == rhs.pNext )
65630           && ( physicalDeviceCount == rhs.physicalDeviceCount )
65631           && ( physicalDevices == rhs.physicalDevices )
65632           && ( subsetAllocation == rhs.subsetAllocation );
65633     }
65634 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties65635     bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65636     {
65637       return !operator==( rhs );
65638     }
65639 #endif
65640 
65641 
65642 
65643   public:
65644     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
65645     void* pNext = {};
65646     uint32_t physicalDeviceCount = {};
65647     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> physicalDevices = {};
65648     VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {};
65649 
65650   };
65651   static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" );
65652   static_assert( std::is_standard_layout<PhysicalDeviceGroupProperties>::value, "struct wrapper is not a standard layout!" );
65653 
65654   template <>
65655   struct CppType<StructureType, StructureType::ePhysicalDeviceGroupProperties>
65656   {
65657     using Type = PhysicalDeviceGroupProperties;
65658   };
65659   using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
65660 
65661   struct PhysicalDeviceHostQueryResetFeatures
65662   {
65663     static const bool allowDuplicate = false;
65664     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
65665 
65666 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65667     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures(VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}) VULKAN_HPP_NOEXCEPT
65668     : hostQueryReset( hostQueryReset_ )
65669     {}
65670 
65671     VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65672 
PhysicalDeviceHostQueryResetFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65673     PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65674     {
65675       *this = rhs;
65676     }
65677 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65678 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65679     PhysicalDeviceHostQueryResetFeatures & operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65680     {
65681       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const *>( &rhs );
65682       return *this;
65683     }
65684 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65685     PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
65686     {
65687       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceHostQueryResetFeatures ) );
65688       return *this;
65689     }
65690 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65691     PhysicalDeviceHostQueryResetFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65692     {
65693       pNext = pNext_;
65694       return *this;
65695     }
65696 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65697     PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
65698     {
65699       hostQueryReset = hostQueryReset_;
65700       return *this;
65701     }
65702 
65703 
operator VkPhysicalDeviceHostQueryResetFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65704     operator VkPhysicalDeviceHostQueryResetFeatures const&() const VULKAN_HPP_NOEXCEPT
65705     {
65706       return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>( this );
65707     }
65708 
operator VkPhysicalDeviceHostQueryResetFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65709     operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
65710     {
65711       return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>( this );
65712     }
65713 
65714 
65715 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65716     auto operator<=>( PhysicalDeviceHostQueryResetFeatures const& ) const = default;
65717 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65718     bool operator==( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
65719     {
65720       return ( sType == rhs.sType )
65721           && ( pNext == rhs.pNext )
65722           && ( hostQueryReset == rhs.hostQueryReset );
65723     }
65724 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures65725     bool operator!=( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
65726     {
65727       return !operator==( rhs );
65728     }
65729 #endif
65730 
65731 
65732 
65733   public:
65734     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
65735     void* pNext = {};
65736     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
65737 
65738   };
65739   static_assert( sizeof( PhysicalDeviceHostQueryResetFeatures ) == sizeof( VkPhysicalDeviceHostQueryResetFeatures ), "struct and wrapper have different size!" );
65740   static_assert( std::is_standard_layout<PhysicalDeviceHostQueryResetFeatures>::value, "struct wrapper is not a standard layout!" );
65741 
65742   template <>
65743   struct CppType<StructureType, StructureType::ePhysicalDeviceHostQueryResetFeatures>
65744   {
65745     using Type = PhysicalDeviceHostQueryResetFeatures;
65746   };
65747   using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
65748 
65749   struct PhysicalDeviceIDProperties
65750   {
65751     static const bool allowDuplicate = false;
65752     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties;
65753 
65754 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65755     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties(std::array<uint8_t,VK_UUID_SIZE> const& deviceUUID_ = {}, std::array<uint8_t,VK_UUID_SIZE> const& driverUUID_ = {}, std::array<uint8_t,VK_LUID_SIZE> const& deviceLUID_ = {}, uint32_t deviceNodeMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}) VULKAN_HPP_NOEXCEPT
65756     : deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ )
65757     {}
65758 
65759     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65760 
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65761     PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65762     {
65763       *this = rhs;
65764     }
65765 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65766 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65767     PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65768     {
65769       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const *>( &rhs );
65770       return *this;
65771     }
65772 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65773     PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
65774     {
65775       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceIDProperties ) );
65776       return *this;
65777     }
65778 
65779 
operator VkPhysicalDeviceIDProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65780     operator VkPhysicalDeviceIDProperties const&() const VULKAN_HPP_NOEXCEPT
65781     {
65782       return *reinterpret_cast<const VkPhysicalDeviceIDProperties*>( this );
65783     }
65784 
operator VkPhysicalDeviceIDProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65785     operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
65786     {
65787       return *reinterpret_cast<VkPhysicalDeviceIDProperties*>( this );
65788     }
65789 
65790 
65791 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65792     auto operator<=>( PhysicalDeviceIDProperties const& ) const = default;
65793 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65794     bool operator==( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65795     {
65796       return ( sType == rhs.sType )
65797           && ( pNext == rhs.pNext )
65798           && ( deviceUUID == rhs.deviceUUID )
65799           && ( driverUUID == rhs.driverUUID )
65800           && ( deviceLUID == rhs.deviceLUID )
65801           && ( deviceNodeMask == rhs.deviceNodeMask )
65802           && ( deviceLUIDValid == rhs.deviceLUIDValid );
65803     }
65804 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties65805     bool operator!=( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
65806     {
65807       return !operator==( rhs );
65808     }
65809 #endif
65810 
65811 
65812 
65813   public:
65814     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties;
65815     void* pNext = {};
65816     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
65817     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
65818     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
65819     uint32_t deviceNodeMask = {};
65820     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
65821 
65822   };
65823   static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" );
65824   static_assert( std::is_standard_layout<PhysicalDeviceIDProperties>::value, "struct wrapper is not a standard layout!" );
65825 
65826   template <>
65827   struct CppType<StructureType, StructureType::ePhysicalDeviceIdProperties>
65828   {
65829     using Type = PhysicalDeviceIDProperties;
65830   };
65831   using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
65832 
65833   struct PhysicalDeviceImageDrmFormatModifierInfoEXT
65834   {
65835     static const bool allowDuplicate = false;
65836     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
65837 
65838 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65839     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT(uint64_t drmFormatModifier_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}) VULKAN_HPP_NOEXCEPT
65840     : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ )
65841     {}
65842 
65843     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65844 
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65845     PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65846     {
65847       *this = rhs;
65848     }
65849 
65850 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65851     PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ )
65852     : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() )
65853     {}
65854 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
65855 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65856 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65857     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65858     {
65859       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs );
65860       return *this;
65861     }
65862 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65863     PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65864     {
65865       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) );
65866       return *this;
65867     }
65868 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65869     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
65870     {
65871       pNext = pNext_;
65872       return *this;
65873     }
65874 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65875     PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
65876     {
65877       drmFormatModifier = drmFormatModifier_;
65878       return *this;
65879     }
65880 
setSharingModeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65881     PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
65882     {
65883       sharingMode = sharingMode_;
65884       return *this;
65885     }
65886 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65887     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
65888     {
65889       queueFamilyIndexCount = queueFamilyIndexCount_;
65890       return *this;
65891     }
65892 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65893     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
65894     {
65895       pQueueFamilyIndices = pQueueFamilyIndices_;
65896       return *this;
65897     }
65898 
65899 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65900     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
65901     {
65902       queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
65903       pQueueFamilyIndices = queueFamilyIndices_.data();
65904       return *this;
65905     }
65906 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
65907 
65908 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65909     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const VULKAN_HPP_NOEXCEPT
65910     {
65911       return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
65912     }
65913 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65914     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
65915     {
65916       return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
65917     }
65918 
65919 
65920 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
65921     auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const& ) const = default;
65922 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65923     bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65924     {
65925       return ( sType == rhs.sType )
65926           && ( pNext == rhs.pNext )
65927           && ( drmFormatModifier == rhs.drmFormatModifier )
65928           && ( sharingMode == rhs.sharingMode )
65929           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
65930           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
65931     }
65932 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT65933     bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
65934     {
65935       return !operator==( rhs );
65936     }
65937 #endif
65938 
65939 
65940 
65941   public:
65942     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
65943     const void* pNext = {};
65944     uint64_t drmFormatModifier = {};
65945     VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
65946     uint32_t queueFamilyIndexCount = {};
65947     const uint32_t* pQueueFamilyIndices = {};
65948 
65949   };
65950   static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" );
65951   static_assert( std::is_standard_layout<PhysicalDeviceImageDrmFormatModifierInfoEXT>::value, "struct wrapper is not a standard layout!" );
65952 
65953   template <>
65954   struct CppType<StructureType, StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT>
65955   {
65956     using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT;
65957   };
65958 
65959   struct PhysicalDeviceImageRobustnessFeaturesEXT
65960   {
65961     static const bool allowDuplicate = false;
65962     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT;
65963 
65964 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65965     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {}) VULKAN_HPP_NOEXCEPT
65966     : robustImageAccess( robustImageAccess_ )
65967     {}
65968 
65969     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
65970 
PhysicalDeviceImageRobustnessFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65971     PhysicalDeviceImageRobustnessFeaturesEXT( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65972     {
65973       *this = rhs;
65974     }
65975 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
65976 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65977     PhysicalDeviceImageRobustnessFeaturesEXT & operator=( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65978     {
65979       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT const *>( &rhs );
65980       return *this;
65981     }
65982 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65983     PhysicalDeviceImageRobustnessFeaturesEXT & operator=( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
65984     {
65985       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) );
65986       return *this;
65987     }
65988 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65989     PhysicalDeviceImageRobustnessFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
65990     {
65991       pNext = pNext_;
65992       return *this;
65993     }
65994 
setRobustImageAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT65995     PhysicalDeviceImageRobustnessFeaturesEXT & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
65996     {
65997       robustImageAccess = robustImageAccess_;
65998       return *this;
65999     }
66000 
66001 
operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66002     operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66003     {
66004       return *reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeaturesEXT*>( this );
66005     }
66006 
operator VkPhysicalDeviceImageRobustnessFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66007     operator VkPhysicalDeviceImageRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66008     {
66009       return *reinterpret_cast<VkPhysicalDeviceImageRobustnessFeaturesEXT*>( this );
66010     }
66011 
66012 
66013 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66014     auto operator<=>( PhysicalDeviceImageRobustnessFeaturesEXT const& ) const = default;
66015 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66016     bool operator==( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66017     {
66018       return ( sType == rhs.sType )
66019           && ( pNext == rhs.pNext )
66020           && ( robustImageAccess == rhs.robustImageAccess );
66021     }
66022 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeaturesEXT66023     bool operator!=( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66024     {
66025       return !operator==( rhs );
66026     }
66027 #endif
66028 
66029 
66030 
66031   public:
66032     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT;
66033     void* pNext = {};
66034     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
66035 
66036   };
66037   static_assert( sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) == sizeof( VkPhysicalDeviceImageRobustnessFeaturesEXT ), "struct and wrapper have different size!" );
66038   static_assert( std::is_standard_layout<PhysicalDeviceImageRobustnessFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66039 
66040   template <>
66041   struct CppType<StructureType, StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT>
66042   {
66043     using Type = PhysicalDeviceImageRobustnessFeaturesEXT;
66044   };
66045 
66046   struct PhysicalDeviceImageViewImageFormatInfoEXT
66047   {
66048     static const bool allowDuplicate = false;
66049     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
66050 
66051 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66052     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT(VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D) VULKAN_HPP_NOEXCEPT
66053     : imageViewType( imageViewType_ )
66054     {}
66055 
66056     VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66057 
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66058     PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66059     {
66060       *this = rhs;
66061     }
66062 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66063 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66064     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66065     {
66066       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs );
66067       return *this;
66068     }
66069 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66070     PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66071     {
66072       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) );
66073       return *this;
66074     }
66075 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66076     PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66077     {
66078       pNext = pNext_;
66079       return *this;
66080     }
66081 
setImageViewTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66082     PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
66083     {
66084       imageViewType = imageViewType_;
66085       return *this;
66086     }
66087 
66088 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66089     operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const VULKAN_HPP_NOEXCEPT
66090     {
66091       return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
66092     }
66093 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66094     operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
66095     {
66096       return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
66097     }
66098 
66099 
66100 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66101     auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const& ) const = default;
66102 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66103     bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66104     {
66105       return ( sType == rhs.sType )
66106           && ( pNext == rhs.pNext )
66107           && ( imageViewType == rhs.imageViewType );
66108     }
66109 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT66110     bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66111     {
66112       return !operator==( rhs );
66113     }
66114 #endif
66115 
66116 
66117 
66118   public:
66119     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
66120     void* pNext = {};
66121     VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
66122 
66123   };
66124   static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" );
66125   static_assert( std::is_standard_layout<PhysicalDeviceImageViewImageFormatInfoEXT>::value, "struct wrapper is not a standard layout!" );
66126 
66127   template <>
66128   struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT>
66129   {
66130     using Type = PhysicalDeviceImageViewImageFormatInfoEXT;
66131   };
66132 
66133   struct PhysicalDeviceImagelessFramebufferFeatures
66134   {
66135     static const bool allowDuplicate = false;
66136     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
66137 
66138 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66139     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures(VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}) VULKAN_HPP_NOEXCEPT
66140     : imagelessFramebuffer( imagelessFramebuffer_ )
66141     {}
66142 
66143     VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66144 
PhysicalDeviceImagelessFramebufferFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66145     PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66146     {
66147       *this = rhs;
66148     }
66149 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66150 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66151     PhysicalDeviceImagelessFramebufferFeatures & operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66152     {
66153       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs );
66154       return *this;
66155     }
66156 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66157     PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
66158     {
66159       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceImagelessFramebufferFeatures ) );
66160       return *this;
66161     }
66162 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66163     PhysicalDeviceImagelessFramebufferFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66164     {
66165       pNext = pNext_;
66166       return *this;
66167     }
66168 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66169     PhysicalDeviceImagelessFramebufferFeatures & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
66170     {
66171       imagelessFramebuffer = imagelessFramebuffer_;
66172       return *this;
66173     }
66174 
66175 
operator VkPhysicalDeviceImagelessFramebufferFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66176     operator VkPhysicalDeviceImagelessFramebufferFeatures const&() const VULKAN_HPP_NOEXCEPT
66177     {
66178       return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
66179     }
66180 
operator VkPhysicalDeviceImagelessFramebufferFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66181     operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
66182     {
66183       return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>( this );
66184     }
66185 
66186 
66187 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66188     auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const& ) const = default;
66189 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66190     bool operator==( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66191     {
66192       return ( sType == rhs.sType )
66193           && ( pNext == rhs.pNext )
66194           && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
66195     }
66196 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures66197     bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
66198     {
66199       return !operator==( rhs );
66200     }
66201 #endif
66202 
66203 
66204 
66205   public:
66206     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
66207     void* pNext = {};
66208     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
66209 
66210   };
66211   static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeatures ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeatures ), "struct and wrapper have different size!" );
66212   static_assert( std::is_standard_layout<PhysicalDeviceImagelessFramebufferFeatures>::value, "struct wrapper is not a standard layout!" );
66213 
66214   template <>
66215   struct CppType<StructureType, StructureType::ePhysicalDeviceImagelessFramebufferFeatures>
66216   {
66217     using Type = PhysicalDeviceImagelessFramebufferFeatures;
66218   };
66219   using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
66220 
66221   struct PhysicalDeviceIndexTypeUint8FeaturesEXT
66222   {
66223     static const bool allowDuplicate = false;
66224     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
66225 
66226 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66227     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {}) VULKAN_HPP_NOEXCEPT
66228     : indexTypeUint8( indexTypeUint8_ )
66229     {}
66230 
66231     VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66232 
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66233     PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66234     {
66235       *this = rhs;
66236     }
66237 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66238 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66239     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66240     {
66241       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs );
66242       return *this;
66243     }
66244 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66245     PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66246     {
66247       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) );
66248       return *this;
66249     }
66250 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66251     PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66252     {
66253       pNext = pNext_;
66254       return *this;
66255     }
66256 
setIndexTypeUint8VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66257     PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT
66258     {
66259       indexTypeUint8 = indexTypeUint8_;
66260       return *this;
66261     }
66262 
66263 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66264     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66265     {
66266       return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
66267     }
66268 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66269     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
66270     {
66271       return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
66272     }
66273 
66274 
66275 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66276     auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const& ) const = default;
66277 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66278     bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66279     {
66280       return ( sType == rhs.sType )
66281           && ( pNext == rhs.pNext )
66282           && ( indexTypeUint8 == rhs.indexTypeUint8 );
66283     }
66284 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT66285     bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66286     {
66287       return !operator==( rhs );
66288     }
66289 #endif
66290 
66291 
66292 
66293   public:
66294     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
66295     void* pNext = {};
66296     VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {};
66297 
66298   };
66299   static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "struct and wrapper have different size!" );
66300   static_assert( std::is_standard_layout<PhysicalDeviceIndexTypeUint8FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66301 
66302   template <>
66303   struct CppType<StructureType, StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT>
66304   {
66305     using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT;
66306   };
66307 
66308   struct PhysicalDeviceInlineUniformBlockFeaturesEXT
66309   {
66310     static const bool allowDuplicate = false;
66311     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
66312 
66313 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66314     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {}) VULKAN_HPP_NOEXCEPT
66315     : inlineUniformBlock( inlineUniformBlock_ ), descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
66316     {}
66317 
66318     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66319 
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66320     PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66321     {
66322       *this = rhs;
66323     }
66324 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66325 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66326     PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66327     {
66328       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT const *>( &rhs );
66329       return *this;
66330     }
66331 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66332     PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66333     {
66334       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) );
66335       return *this;
66336     }
66337 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66338     PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66339     {
66340       pNext = pNext_;
66341       return *this;
66342     }
66343 
setInlineUniformBlockVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66344     PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
66345     {
66346       inlineUniformBlock = inlineUniformBlock_;
66347       return *this;
66348     }
66349 
setDescriptorBindingInlineUniformBlockUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66350     PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
66351     {
66352       descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
66353       return *this;
66354     }
66355 
66356 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66357     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66358     {
66359       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
66360     }
66361 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66362     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66363     {
66364       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
66365     }
66366 
66367 
66368 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66369     auto operator<=>( PhysicalDeviceInlineUniformBlockFeaturesEXT const& ) const = default;
66370 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66371     bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66372     {
66373       return ( sType == rhs.sType )
66374           && ( pNext == rhs.pNext )
66375           && ( inlineUniformBlock == rhs.inlineUniformBlock )
66376           && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
66377     }
66378 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT66379     bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66380     {
66381       return !operator==( rhs );
66382     }
66383 #endif
66384 
66385 
66386 
66387   public:
66388     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
66389     void* pNext = {};
66390     VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
66391     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
66392 
66393   };
66394   static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" );
66395   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66396 
66397   template <>
66398   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT>
66399   {
66400     using Type = PhysicalDeviceInlineUniformBlockFeaturesEXT;
66401   };
66402 
66403   struct PhysicalDeviceInlineUniformBlockPropertiesEXT
66404   {
66405     static const bool allowDuplicate = false;
66406     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
66407 
66408 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66409     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT(uint32_t maxInlineUniformBlockSize_ = {}, uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {}) VULKAN_HPP_NOEXCEPT
66410     : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ), maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ), maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ), maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ), maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
66411     {}
66412 
66413     VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66414 
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66415     PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66416     {
66417       *this = rhs;
66418     }
66419 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66420 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66421     PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66422     {
66423       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT const *>( &rhs );
66424       return *this;
66425     }
66426 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66427     PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66428     {
66429       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) );
66430       return *this;
66431     }
66432 
66433 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66434     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
66435     {
66436       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
66437     }
66438 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66439     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() VULKAN_HPP_NOEXCEPT
66440     {
66441       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
66442     }
66443 
66444 
66445 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66446     auto operator<=>( PhysicalDeviceInlineUniformBlockPropertiesEXT const& ) const = default;
66447 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66448     bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66449     {
66450       return ( sType == rhs.sType )
66451           && ( pNext == rhs.pNext )
66452           && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize )
66453           && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks )
66454           && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks )
66455           && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks )
66456           && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
66457     }
66458 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT66459     bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66460     {
66461       return !operator==( rhs );
66462     }
66463 #endif
66464 
66465 
66466 
66467   public:
66468     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
66469     void* pNext = {};
66470     uint32_t maxInlineUniformBlockSize = {};
66471     uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
66472     uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
66473     uint32_t maxDescriptorSetInlineUniformBlocks = {};
66474     uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
66475 
66476   };
66477   static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" );
66478   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
66479 
66480   template <>
66481   struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT>
66482   {
66483     using Type = PhysicalDeviceInlineUniformBlockPropertiesEXT;
66484   };
66485 
66486   struct PhysicalDeviceLineRasterizationFeaturesEXT
66487   {
66488     static const bool allowDuplicate = false;
66489     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
66490 
66491 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66492     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {}) VULKAN_HPP_NOEXCEPT
66493     : rectangularLines( rectangularLines_ ), bresenhamLines( bresenhamLines_ ), smoothLines( smoothLines_ ), stippledRectangularLines( stippledRectangularLines_ ), stippledBresenhamLines( stippledBresenhamLines_ ), stippledSmoothLines( stippledSmoothLines_ )
66494     {}
66495 
66496     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66497 
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66498     PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66499     {
66500       *this = rhs;
66501     }
66502 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66503 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66504     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66505     {
66506       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs );
66507       return *this;
66508     }
66509 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66510     PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66511     {
66512       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) );
66513       return *this;
66514     }
66515 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66516     PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66517     {
66518       pNext = pNext_;
66519       return *this;
66520     }
66521 
setRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66522     PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
66523     {
66524       rectangularLines = rectangularLines_;
66525       return *this;
66526     }
66527 
setBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66528     PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT
66529     {
66530       bresenhamLines = bresenhamLines_;
66531       return *this;
66532     }
66533 
setSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66534     PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT
66535     {
66536       smoothLines = smoothLines_;
66537       return *this;
66538     }
66539 
setStippledRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66540     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
66541     {
66542       stippledRectangularLines = stippledRectangularLines_;
66543       return *this;
66544     }
66545 
setStippledBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66546     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
66547     {
66548       stippledBresenhamLines = stippledBresenhamLines_;
66549       return *this;
66550     }
66551 
setStippledSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66552     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
66553     {
66554       stippledSmoothLines = stippledSmoothLines_;
66555       return *this;
66556     }
66557 
66558 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66559     operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66560     {
66561       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
66562     }
66563 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66564     operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66565     {
66566       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
66567     }
66568 
66569 
66570 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66571     auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const& ) const = default;
66572 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66573     bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66574     {
66575       return ( sType == rhs.sType )
66576           && ( pNext == rhs.pNext )
66577           && ( rectangularLines == rhs.rectangularLines )
66578           && ( bresenhamLines == rhs.bresenhamLines )
66579           && ( smoothLines == rhs.smoothLines )
66580           && ( stippledRectangularLines == rhs.stippledRectangularLines )
66581           && ( stippledBresenhamLines == rhs.stippledBresenhamLines )
66582           && ( stippledSmoothLines == rhs.stippledSmoothLines );
66583     }
66584 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT66585     bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66586     {
66587       return !operator==( rhs );
66588     }
66589 #endif
66590 
66591 
66592 
66593   public:
66594     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
66595     void* pNext = {};
66596     VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {};
66597     VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {};
66598     VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {};
66599     VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {};
66600     VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {};
66601     VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {};
66602 
66603   };
66604   static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "struct and wrapper have different size!" );
66605   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66606 
66607   template <>
66608   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT>
66609   {
66610     using Type = PhysicalDeviceLineRasterizationFeaturesEXT;
66611   };
66612 
66613   struct PhysicalDeviceLineRasterizationPropertiesEXT
66614   {
66615     static const bool allowDuplicate = false;
66616     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
66617 
66618 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66619     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT(uint32_t lineSubPixelPrecisionBits_ = {}) VULKAN_HPP_NOEXCEPT
66620     : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
66621     {}
66622 
66623     VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66624 
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66625     PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66626     {
66627       *this = rhs;
66628     }
66629 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66630 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66631     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66632     {
66633       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs );
66634       return *this;
66635     }
66636 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66637     PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66638     {
66639       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) );
66640       return *this;
66641     }
66642 
66643 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66644     operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
66645     {
66646       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
66647     }
66648 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66649     operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
66650     {
66651       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
66652     }
66653 
66654 
66655 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66656     auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const& ) const = default;
66657 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66658     bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66659     {
66660       return ( sType == rhs.sType )
66661           && ( pNext == rhs.pNext )
66662           && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits );
66663     }
66664 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT66665     bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66666     {
66667       return !operator==( rhs );
66668     }
66669 #endif
66670 
66671 
66672 
66673   public:
66674     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
66675     void* pNext = {};
66676     uint32_t lineSubPixelPrecisionBits = {};
66677 
66678   };
66679   static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
66680   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
66681 
66682   template <>
66683   struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT>
66684   {
66685     using Type = PhysicalDeviceLineRasterizationPropertiesEXT;
66686   };
66687 
66688   struct PhysicalDeviceMaintenance3Properties
66689   {
66690     static const bool allowDuplicate = false;
66691     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties;
66692 
66693 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66694     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties(uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}) VULKAN_HPP_NOEXCEPT
66695     : maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ )
66696     {}
66697 
66698     VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66699 
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66700     PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
66701     {
66702       *this = rhs;
66703     }
66704 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66705 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66706     PhysicalDeviceMaintenance3Properties & operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
66707     {
66708       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const *>( &rhs );
66709       return *this;
66710     }
66711 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66712     PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
66713     {
66714       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMaintenance3Properties ) );
66715       return *this;
66716     }
66717 
66718 
operator VkPhysicalDeviceMaintenance3Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66719     operator VkPhysicalDeviceMaintenance3Properties const&() const VULKAN_HPP_NOEXCEPT
66720     {
66721       return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>( this );
66722     }
66723 
operator VkPhysicalDeviceMaintenance3Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66724     operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
66725     {
66726       return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>( this );
66727     }
66728 
66729 
66730 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66731     auto operator<=>( PhysicalDeviceMaintenance3Properties const& ) const = default;
66732 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66733     bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
66734     {
66735       return ( sType == rhs.sType )
66736           && ( pNext == rhs.pNext )
66737           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
66738           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
66739     }
66740 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties66741     bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
66742     {
66743       return !operator==( rhs );
66744     }
66745 #endif
66746 
66747 
66748 
66749   public:
66750     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
66751     void* pNext = {};
66752     uint32_t maxPerSetDescriptors = {};
66753     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
66754 
66755   };
66756   static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" );
66757   static_assert( std::is_standard_layout<PhysicalDeviceMaintenance3Properties>::value, "struct wrapper is not a standard layout!" );
66758 
66759   template <>
66760   struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance3Properties>
66761   {
66762     using Type = PhysicalDeviceMaintenance3Properties;
66763   };
66764   using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
66765 
66766   struct PhysicalDeviceMemoryBudgetPropertiesEXT
66767   {
66768     static const bool allowDuplicate = false;
66769     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
66770 
66771 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66772     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT(std::array<VULKAN_HPP_NAMESPACE::DeviceSize,VK_MAX_MEMORY_HEAPS> const& heapBudget_ = {}, std::array<VULKAN_HPP_NAMESPACE::DeviceSize,VK_MAX_MEMORY_HEAPS> const& heapUsage_ = {}) VULKAN_HPP_NOEXCEPT
66773     : heapBudget( heapBudget_ ), heapUsage( heapUsage_ )
66774     {}
66775 
66776     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66777 
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66778     PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66779     {
66780       *this = rhs;
66781     }
66782 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66783 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66784     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66785     {
66786       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs );
66787       return *this;
66788     }
66789 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66790     PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66791     {
66792       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) );
66793       return *this;
66794     }
66795 
66796 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66797     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
66798     {
66799       return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
66800     }
66801 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66802     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
66803     {
66804       return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
66805     }
66806 
66807 
66808 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66809     auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const& ) const = default;
66810 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66811     bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66812     {
66813       return ( sType == rhs.sType )
66814           && ( pNext == rhs.pNext )
66815           && ( heapBudget == rhs.heapBudget )
66816           && ( heapUsage == rhs.heapUsage );
66817     }
66818 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT66819     bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66820     {
66821       return !operator==( rhs );
66822     }
66823 #endif
66824 
66825 
66826 
66827   public:
66828     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
66829     void* pNext = {};
66830     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapBudget = {};
66831     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapUsage = {};
66832 
66833   };
66834   static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" );
66835   static_assert( std::is_standard_layout<PhysicalDeviceMemoryBudgetPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
66836 
66837   template <>
66838   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT>
66839   {
66840     using Type = PhysicalDeviceMemoryBudgetPropertiesEXT;
66841   };
66842 
66843   struct PhysicalDeviceMemoryPriorityFeaturesEXT
66844   {
66845     static const bool allowDuplicate = false;
66846     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
66847 
66848 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66849     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {}) VULKAN_HPP_NOEXCEPT
66850     : memoryPriority( memoryPriority_ )
66851     {}
66852 
66853     VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66854 
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66855     PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66856     {
66857       *this = rhs;
66858     }
66859 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66860 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66861     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66862     {
66863       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs );
66864       return *this;
66865     }
66866 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66867     PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
66868     {
66869       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) );
66870       return *this;
66871     }
66872 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66873     PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66874     {
66875       pNext = pNext_;
66876       return *this;
66877     }
66878 
setMemoryPriorityVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66879     PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT
66880     {
66881       memoryPriority = memoryPriority_;
66882       return *this;
66883     }
66884 
66885 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66886     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
66887     {
66888       return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
66889     }
66890 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66891     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
66892     {
66893       return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
66894     }
66895 
66896 
66897 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66898     auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const& ) const = default;
66899 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66900     bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66901     {
66902       return ( sType == rhs.sType )
66903           && ( pNext == rhs.pNext )
66904           && ( memoryPriority == rhs.memoryPriority );
66905     }
66906 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT66907     bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
66908     {
66909       return !operator==( rhs );
66910     }
66911 #endif
66912 
66913 
66914 
66915   public:
66916     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
66917     void* pNext = {};
66918     VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {};
66919 
66920   };
66921   static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" );
66922   static_assert( std::is_standard_layout<PhysicalDeviceMemoryPriorityFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
66923 
66924   template <>
66925   struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT>
66926   {
66927     using Type = PhysicalDeviceMemoryPriorityFeaturesEXT;
66928   };
66929 
66930   struct PhysicalDeviceMeshShaderFeaturesNV
66931   {
66932     static const bool allowDuplicate = false;
66933     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
66934 
66935 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66936     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {}) VULKAN_HPP_NOEXCEPT
66937     : taskShader( taskShader_ ), meshShader( meshShader_ )
66938     {}
66939 
66940     VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
66941 
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66942     PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66943     {
66944       *this = rhs;
66945     }
66946 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
66947 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66948     PhysicalDeviceMeshShaderFeaturesNV & operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66949     {
66950       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs );
66951       return *this;
66952     }
66953 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66954     PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
66955     {
66956       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMeshShaderFeaturesNV ) );
66957       return *this;
66958     }
66959 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66960     PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
66961     {
66962       pNext = pNext_;
66963       return *this;
66964     }
66965 
setTaskShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66966     PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
66967     {
66968       taskShader = taskShader_;
66969       return *this;
66970     }
66971 
setMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66972     PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
66973     {
66974       meshShader = meshShader_;
66975       return *this;
66976     }
66977 
66978 
operator VkPhysicalDeviceMeshShaderFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66979     operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
66980     {
66981       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
66982     }
66983 
operator VkPhysicalDeviceMeshShaderFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66984     operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
66985     {
66986       return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
66987     }
66988 
66989 
66990 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
66991     auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const& ) const = default;
66992 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV66993     bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
66994     {
66995       return ( sType == rhs.sType )
66996           && ( pNext == rhs.pNext )
66997           && ( taskShader == rhs.taskShader )
66998           && ( meshShader == rhs.meshShader );
66999     }
67000 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV67001     bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67002     {
67003       return !operator==( rhs );
67004     }
67005 #endif
67006 
67007 
67008 
67009   public:
67010     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
67011     void* pNext = {};
67012     VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
67013     VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
67014 
67015   };
67016   static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" );
67017   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderFeaturesNV>::value, "struct wrapper is not a standard layout!" );
67018 
67019   template <>
67020   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesNV>
67021   {
67022     using Type = PhysicalDeviceMeshShaderFeaturesNV;
67023   };
67024 
67025   struct PhysicalDeviceMeshShaderPropertiesNV
67026   {
67027     static const bool allowDuplicate = false;
67028     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
67029 
67030 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67031     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV(uint32_t maxDrawMeshTasksCount_ = {}, uint32_t maxTaskWorkGroupInvocations_ = {}, std::array<uint32_t,3> const& maxTaskWorkGroupSize_ = {}, uint32_t maxTaskTotalMemorySize_ = {}, uint32_t maxTaskOutputCount_ = {}, uint32_t maxMeshWorkGroupInvocations_ = {}, std::array<uint32_t,3> const& maxMeshWorkGroupSize_ = {}, uint32_t maxMeshTotalMemorySize_ = {}, uint32_t maxMeshOutputVertices_ = {}, uint32_t maxMeshOutputPrimitives_ = {}, uint32_t maxMeshMultiviewViewCount_ = {}, uint32_t meshOutputPerVertexGranularity_ = {}, uint32_t meshOutputPerPrimitiveGranularity_ = {}) VULKAN_HPP_NOEXCEPT
67032     : maxDrawMeshTasksCount( maxDrawMeshTasksCount_ ), maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ ), maxTaskWorkGroupSize( maxTaskWorkGroupSize_ ), maxTaskTotalMemorySize( maxTaskTotalMemorySize_ ), maxTaskOutputCount( maxTaskOutputCount_ ), maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ ), maxMeshWorkGroupSize( maxMeshWorkGroupSize_ ), maxMeshTotalMemorySize( maxMeshTotalMemorySize_ ), maxMeshOutputVertices( maxMeshOutputVertices_ ), maxMeshOutputPrimitives( maxMeshOutputPrimitives_ ), maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ ), meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ ), meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
67033     {}
67034 
67035     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67036 
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67037     PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67038     {
67039       *this = rhs;
67040     }
67041 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67042 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67043     PhysicalDeviceMeshShaderPropertiesNV & operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67044     {
67045       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs );
67046       return *this;
67047     }
67048 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67049     PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
67050     {
67051       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMeshShaderPropertiesNV ) );
67052       return *this;
67053     }
67054 
67055 
operator VkPhysicalDeviceMeshShaderPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67056     operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
67057     {
67058       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
67059     }
67060 
operator VkPhysicalDeviceMeshShaderPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67061     operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
67062     {
67063       return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
67064     }
67065 
67066 
67067 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67068     auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const& ) const = default;
67069 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67070     bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67071     {
67072       return ( sType == rhs.sType )
67073           && ( pNext == rhs.pNext )
67074           && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount )
67075           && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations )
67076           && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize )
67077           && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize )
67078           && ( maxTaskOutputCount == rhs.maxTaskOutputCount )
67079           && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations )
67080           && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize )
67081           && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize )
67082           && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices )
67083           && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives )
67084           && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount )
67085           && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity )
67086           && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
67087     }
67088 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV67089     bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
67090     {
67091       return !operator==( rhs );
67092     }
67093 #endif
67094 
67095 
67096 
67097   public:
67098     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
67099     void* pNext = {};
67100     uint32_t maxDrawMeshTasksCount = {};
67101     uint32_t maxTaskWorkGroupInvocations = {};
67102     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
67103     uint32_t maxTaskTotalMemorySize = {};
67104     uint32_t maxTaskOutputCount = {};
67105     uint32_t maxMeshWorkGroupInvocations = {};
67106     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
67107     uint32_t maxMeshTotalMemorySize = {};
67108     uint32_t maxMeshOutputVertices = {};
67109     uint32_t maxMeshOutputPrimitives = {};
67110     uint32_t maxMeshMultiviewViewCount = {};
67111     uint32_t meshOutputPerVertexGranularity = {};
67112     uint32_t meshOutputPerPrimitiveGranularity = {};
67113 
67114   };
67115   static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" );
67116   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderPropertiesNV>::value, "struct wrapper is not a standard layout!" );
67117 
67118   template <>
67119   struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesNV>
67120   {
67121     using Type = PhysicalDeviceMeshShaderPropertiesNV;
67122   };
67123 
67124   struct PhysicalDeviceMultiviewFeatures
67125   {
67126     static const bool allowDuplicate = false;
67127     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures;
67128 
67129 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67130     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures(VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}) VULKAN_HPP_NOEXCEPT
67131     : multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ )
67132     {}
67133 
67134     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67135 
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67136     PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67137     {
67138       *this = rhs;
67139     }
67140 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67141 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67142     PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67143     {
67144       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const *>( &rhs );
67145       return *this;
67146     }
67147 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67148     PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
67149     {
67150       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMultiviewFeatures ) );
67151       return *this;
67152     }
67153 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67154     PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67155     {
67156       pNext = pNext_;
67157       return *this;
67158     }
67159 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67160     PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
67161     {
67162       multiview = multiview_;
67163       return *this;
67164     }
67165 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67166     PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
67167     {
67168       multiviewGeometryShader = multiviewGeometryShader_;
67169       return *this;
67170     }
67171 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67172     PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
67173     {
67174       multiviewTessellationShader = multiviewTessellationShader_;
67175       return *this;
67176     }
67177 
67178 
operator VkPhysicalDeviceMultiviewFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67179     operator VkPhysicalDeviceMultiviewFeatures const&() const VULKAN_HPP_NOEXCEPT
67180     {
67181       return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>( this );
67182     }
67183 
operator VkPhysicalDeviceMultiviewFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67184     operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
67185     {
67186       return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>( this );
67187     }
67188 
67189 
67190 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67191     auto operator<=>( PhysicalDeviceMultiviewFeatures const& ) const = default;
67192 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67193     bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
67194     {
67195       return ( sType == rhs.sType )
67196           && ( pNext == rhs.pNext )
67197           && ( multiview == rhs.multiview )
67198           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
67199           && ( multiviewTessellationShader == rhs.multiviewTessellationShader );
67200     }
67201 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures67202     bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
67203     {
67204       return !operator==( rhs );
67205     }
67206 #endif
67207 
67208 
67209 
67210   public:
67211     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
67212     void* pNext = {};
67213     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
67214     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
67215     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
67216 
67217   };
67218   static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" );
67219   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewFeatures>::value, "struct wrapper is not a standard layout!" );
67220 
67221   template <>
67222   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewFeatures>
67223   {
67224     using Type = PhysicalDeviceMultiviewFeatures;
67225   };
67226   using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
67227 
67228   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
67229   {
67230     static const bool allowDuplicate = false;
67231     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67232 
67233 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67234     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {}) VULKAN_HPP_NOEXCEPT
67235     : perViewPositionAllComponents( perViewPositionAllComponents_ )
67236     {}
67237 
67238     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67239 
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67240     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
67241     {
67242       *this = rhs;
67243     }
67244 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67245 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67246     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
67247     {
67248       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs );
67249       return *this;
67250     }
67251 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67252     PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
67253     {
67254       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) );
67255       return *this;
67256     }
67257 
67258 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67259     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT
67260     {
67261       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
67262     }
67263 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67264     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
67265     {
67266       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
67267     }
67268 
67269 
67270 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67271     auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& ) const = default;
67272 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67273     bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
67274     {
67275       return ( sType == rhs.sType )
67276           && ( pNext == rhs.pNext )
67277           && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
67278     }
67279 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX67280     bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT
67281     {
67282       return !operator==( rhs );
67283     }
67284 #endif
67285 
67286 
67287 
67288   public:
67289     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67290     void* pNext = {};
67291     VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {};
67292 
67293   };
67294   static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" );
67295   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
67296 
67297   template <>
67298   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
67299   {
67300     using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
67301   };
67302 
67303   struct PhysicalDeviceMultiviewProperties
67304   {
67305     static const bool allowDuplicate = false;
67306     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties;
67307 
67308 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67309     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties(uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}) VULKAN_HPP_NOEXCEPT
67310     : maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
67311     {}
67312 
67313     VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67314 
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67315     PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67316     {
67317       *this = rhs;
67318     }
67319 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67320 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67321     PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67322     {
67323       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const *>( &rhs );
67324       return *this;
67325     }
67326 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67327     PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67328     {
67329       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceMultiviewProperties ) );
67330       return *this;
67331     }
67332 
67333 
operator VkPhysicalDeviceMultiviewProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67334     operator VkPhysicalDeviceMultiviewProperties const&() const VULKAN_HPP_NOEXCEPT
67335     {
67336       return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>( this );
67337     }
67338 
operator VkPhysicalDeviceMultiviewProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67339     operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
67340     {
67341       return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>( this );
67342     }
67343 
67344 
67345 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67346     auto operator<=>( PhysicalDeviceMultiviewProperties const& ) const = default;
67347 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67348     bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67349     {
67350       return ( sType == rhs.sType )
67351           && ( pNext == rhs.pNext )
67352           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
67353           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
67354     }
67355 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties67356     bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67357     {
67358       return !operator==( rhs );
67359     }
67360 #endif
67361 
67362 
67363 
67364   public:
67365     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
67366     void* pNext = {};
67367     uint32_t maxMultiviewViewCount = {};
67368     uint32_t maxMultiviewInstanceIndex = {};
67369 
67370   };
67371   static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" );
67372   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewProperties>::value, "struct wrapper is not a standard layout!" );
67373 
67374   template <>
67375   struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewProperties>
67376   {
67377     using Type = PhysicalDeviceMultiviewProperties;
67378   };
67379   using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
67380 
67381   struct PhysicalDevicePCIBusInfoPropertiesEXT
67382   {
67383     static const bool allowDuplicate = false;
67384     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
67385 
67386 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67387     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}) VULKAN_HPP_NOEXCEPT
67388     : pciDomain( pciDomain_ ), pciBus( pciBus_ ), pciDevice( pciDevice_ ), pciFunction( pciFunction_ )
67389     {}
67390 
67391     VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67392 
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67393     PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67394     {
67395       *this = rhs;
67396     }
67397 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67398 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67399     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67400     {
67401       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs );
67402       return *this;
67403     }
67404 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67405     PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67406     {
67407       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) );
67408       return *this;
67409     }
67410 
67411 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67412     operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
67413     {
67414       return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
67415     }
67416 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67417     operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
67418     {
67419       return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
67420     }
67421 
67422 
67423 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67424     auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const& ) const = default;
67425 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67426     bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67427     {
67428       return ( sType == rhs.sType )
67429           && ( pNext == rhs.pNext )
67430           && ( pciDomain == rhs.pciDomain )
67431           && ( pciBus == rhs.pciBus )
67432           && ( pciDevice == rhs.pciDevice )
67433           && ( pciFunction == rhs.pciFunction );
67434     }
67435 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT67436     bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67437     {
67438       return !operator==( rhs );
67439     }
67440 #endif
67441 
67442 
67443 
67444   public:
67445     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
67446     void* pNext = {};
67447     uint32_t pciDomain = {};
67448     uint32_t pciBus = {};
67449     uint32_t pciDevice = {};
67450     uint32_t pciFunction = {};
67451 
67452   };
67453   static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" );
67454   static_assert( std::is_standard_layout<PhysicalDevicePCIBusInfoPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
67455 
67456   template <>
67457   struct CppType<StructureType, StructureType::ePhysicalDevicePciBusInfoPropertiesEXT>
67458   {
67459     using Type = PhysicalDevicePCIBusInfoPropertiesEXT;
67460   };
67461 
67462   struct PhysicalDevicePerformanceQueryFeaturesKHR
67463   {
67464     static const bool allowDuplicate = false;
67465     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
67466 
67467 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67468     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {}) VULKAN_HPP_NOEXCEPT
67469     : performanceCounterQueryPools( performanceCounterQueryPools_ ), performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ )
67470     {}
67471 
67472     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67473 
PhysicalDevicePerformanceQueryFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67474     PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67475     {
67476       *this = rhs;
67477     }
67478 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67479 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67480     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67481     {
67482       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs );
67483       return *this;
67484     }
67485 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67486     PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67487     {
67488       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) );
67489       return *this;
67490     }
67491 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67492     PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67493     {
67494       pNext = pNext_;
67495       return *this;
67496     }
67497 
setPerformanceCounterQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67498     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
67499     {
67500       performanceCounterQueryPools = performanceCounterQueryPools_;
67501       return *this;
67502     }
67503 
setPerformanceCounterMultipleQueryPoolsVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67504     PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
67505     {
67506       performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
67507       return *this;
67508     }
67509 
67510 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67511     operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
67512     {
67513       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
67514     }
67515 
operator VkPhysicalDevicePerformanceQueryFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67516     operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
67517     {
67518       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>( this );
67519     }
67520 
67521 
67522 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67523     auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const& ) const = default;
67524 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67525     bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67526     {
67527       return ( sType == rhs.sType )
67528           && ( pNext == rhs.pNext )
67529           && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools )
67530           && ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools );
67531     }
67532 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR67533     bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67534     {
67535       return !operator==( rhs );
67536     }
67537 #endif
67538 
67539 
67540 
67541   public:
67542     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
67543     void* pNext = {};
67544     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {};
67545     VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {};
67546 
67547   };
67548   static_assert( sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryFeaturesKHR ), "struct and wrapper have different size!" );
67549   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
67550 
67551   template <>
67552   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR>
67553   {
67554     using Type = PhysicalDevicePerformanceQueryFeaturesKHR;
67555   };
67556 
67557   struct PhysicalDevicePerformanceQueryPropertiesKHR
67558   {
67559     static const bool allowDuplicate = false;
67560     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
67561 
67562 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67563     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {}) VULKAN_HPP_NOEXCEPT
67564     : allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ )
67565     {}
67566 
67567     VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67568 
PhysicalDevicePerformanceQueryPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67569     PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67570     {
67571       *this = rhs;
67572     }
67573 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67574 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67575     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67576     {
67577       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs );
67578       return *this;
67579     }
67580 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67581     PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67582     {
67583       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) );
67584       return *this;
67585     }
67586 
67587 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67588     operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
67589     {
67590       return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
67591     }
67592 
operator VkPhysicalDevicePerformanceQueryPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67593     operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
67594     {
67595       return *reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>( this );
67596     }
67597 
67598 
67599 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67600     auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const& ) const = default;
67601 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67602     bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67603     {
67604       return ( sType == rhs.sType )
67605           && ( pNext == rhs.pNext )
67606           && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies );
67607     }
67608 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR67609     bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67610     {
67611       return !operator==( rhs );
67612     }
67613 #endif
67614 
67615 
67616 
67617   public:
67618     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
67619     void* pNext = {};
67620     VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {};
67621 
67622   };
67623   static_assert( sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryPropertiesKHR ), "struct and wrapper have different size!" );
67624   static_assert( std::is_standard_layout<PhysicalDevicePerformanceQueryPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
67625 
67626   template <>
67627   struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR>
67628   {
67629     using Type = PhysicalDevicePerformanceQueryPropertiesKHR;
67630   };
67631 
67632   struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT
67633   {
67634     static const bool allowDuplicate = false;
67635     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
67636 
67637 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67638     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {}) VULKAN_HPP_NOEXCEPT
67639     : pipelineCreationCacheControl( pipelineCreationCacheControl_ )
67640     {}
67641 
67642     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67643 
PhysicalDevicePipelineCreationCacheControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67644     PhysicalDevicePipelineCreationCacheControlFeaturesEXT( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67645     {
67646       *this = rhs;
67647     }
67648 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67649 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67650     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67651     {
67652       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT const *>( &rhs );
67653       return *this;
67654     }
67655 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67656     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
67657     {
67658       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) );
67659       return *this;
67660     }
67661 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67662     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67663     {
67664       pNext = pNext_;
67665       return *this;
67666     }
67667 
setPipelineCreationCacheControlVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67668     PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
67669     {
67670       pipelineCreationCacheControl = pipelineCreationCacheControl_;
67671       return *this;
67672     }
67673 
67674 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67675     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
67676     {
67677       return *reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
67678     }
67679 
operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67680     operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
67681     {
67682       return *reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>( this );
67683     }
67684 
67685 
67686 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67687     auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& ) const = default;
67688 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67689     bool operator==( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67690     {
67691       return ( sType == rhs.sType )
67692           && ( pNext == rhs.pNext )
67693           && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl );
67694     }
67695 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeaturesEXT67696     bool operator!=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
67697     {
67698       return !operator==( rhs );
67699     }
67700 #endif
67701 
67702 
67703 
67704   public:
67705     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT;
67706     void* pNext = {};
67707     VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
67708 
67709   };
67710   static_assert( sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) == sizeof( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT ), "struct and wrapper have different size!" );
67711   static_assert( std::is_standard_layout<PhysicalDevicePipelineCreationCacheControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
67712 
67713   template <>
67714   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT>
67715   {
67716     using Type = PhysicalDevicePipelineCreationCacheControlFeaturesEXT;
67717   };
67718 
67719   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
67720   {
67721     static const bool allowDuplicate = false;
67722     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
67723 
67724 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67725     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {}) VULKAN_HPP_NOEXCEPT
67726     : pipelineExecutableInfo( pipelineExecutableInfo_ )
67727     {}
67728 
67729     VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67730 
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67731     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67732     {
67733       *this = rhs;
67734     }
67735 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67736 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67737     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67738     {
67739       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs );
67740       return *this;
67741     }
67742 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67743     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67744     {
67745       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) );
67746       return *this;
67747     }
67748 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67749     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67750     {
67751       pNext = pNext_;
67752       return *this;
67753     }
67754 
setPipelineExecutableInfoVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67755     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
67756     {
67757       pipelineExecutableInfo = pipelineExecutableInfo_;
67758       return *this;
67759     }
67760 
67761 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67762     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
67763     {
67764       return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
67765     }
67766 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67767     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
67768     {
67769       return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
67770     }
67771 
67772 
67773 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67774     auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& ) const = default;
67775 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67776     bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67777     {
67778       return ( sType == rhs.sType )
67779           && ( pNext == rhs.pNext )
67780           && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo );
67781     }
67782 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR67783     bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
67784     {
67785       return !operator==( rhs );
67786     }
67787 #endif
67788 
67789 
67790 
67791   public:
67792     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
67793     void* pNext = {};
67794     VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {};
67795 
67796   };
67797   static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "struct and wrapper have different size!" );
67798   static_assert( std::is_standard_layout<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
67799 
67800   template <>
67801   struct CppType<StructureType, StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
67802   {
67803     using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
67804   };
67805 
67806   struct PhysicalDevicePointClippingProperties
67807   {
67808     static const bool allowDuplicate = false;
67809     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties;
67810 
67811 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67812     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes) VULKAN_HPP_NOEXCEPT
67813     : pointClippingBehavior( pointClippingBehavior_ )
67814     {}
67815 
67816     VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67817 
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67818     PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67819     {
67820       *this = rhs;
67821     }
67822 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67823 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67824     PhysicalDevicePointClippingProperties & operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67825     {
67826       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const *>( &rhs );
67827       return *this;
67828     }
67829 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67830     PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
67831     {
67832       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePointClippingProperties ) );
67833       return *this;
67834     }
67835 
67836 
operator VkPhysicalDevicePointClippingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67837     operator VkPhysicalDevicePointClippingProperties const&() const VULKAN_HPP_NOEXCEPT
67838     {
67839       return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>( this );
67840     }
67841 
operator VkPhysicalDevicePointClippingProperties&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67842     operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
67843     {
67844       return *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>( this );
67845     }
67846 
67847 
67848 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
67849     auto operator<=>( PhysicalDevicePointClippingProperties const& ) const = default;
67850 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67851     bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67852     {
67853       return ( sType == rhs.sType )
67854           && ( pNext == rhs.pNext )
67855           && ( pointClippingBehavior == rhs.pointClippingBehavior );
67856     }
67857 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties67858     bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
67859     {
67860       return !operator==( rhs );
67861     }
67862 #endif
67863 
67864 
67865 
67866   public:
67867     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
67868     void* pNext = {};
67869     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
67870 
67871   };
67872   static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" );
67873   static_assert( std::is_standard_layout<PhysicalDevicePointClippingProperties>::value, "struct wrapper is not a standard layout!" );
67874 
67875   template <>
67876   struct CppType<StructureType, StructureType::ePhysicalDevicePointClippingProperties>
67877   {
67878     using Type = PhysicalDevicePointClippingProperties;
67879   };
67880   using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
67881 
67882 #ifdef VK_ENABLE_BETA_EXTENSIONS
67883   struct PhysicalDevicePortabilitySubsetFeaturesKHR
67884   {
67885     static const bool allowDuplicate = false;
67886     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
67887 
67888 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67889     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 events_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ = {}, VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ = {}, VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ = {}) VULKAN_HPP_NOEXCEPT
67890     : constantAlphaColorBlendFactors( constantAlphaColorBlendFactors_ ), events( events_ ), imageViewFormatReinterpretation( imageViewFormatReinterpretation_ ), imageViewFormatSwizzle( imageViewFormatSwizzle_ ), imageView2DOn3DImage( imageView2DOn3DImage_ ), multisampleArrayImage( multisampleArrayImage_ ), mutableComparisonSamplers( mutableComparisonSamplers_ ), pointPolygons( pointPolygons_ ), samplerMipLodBias( samplerMipLodBias_ ), separateStencilMaskRef( separateStencilMaskRef_ ), shaderSampleRateInterpolationFunctions( shaderSampleRateInterpolationFunctions_ ), tessellationIsolines( tessellationIsolines_ ), tessellationPointMode( tessellationPointMode_ ), triangleFans( triangleFans_ ), vertexAttributeAccessBeyondStride( vertexAttributeAccessBeyondStride_ )
67891     {}
67892 
67893     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
67894 
PhysicalDevicePortabilitySubsetFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67895     PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67896     {
67897       *this = rhs;
67898     }
67899 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
67900 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67901     PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67902     {
67903       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs );
67904       return *this;
67905     }
67906 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67907     PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
67908     {
67909       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) );
67910       return *this;
67911     }
67912 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67913     PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
67914     {
67915       pNext = pNext_;
67916       return *this;
67917     }
67918 
setConstantAlphaColorBlendFactorsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67919     PhysicalDevicePortabilitySubsetFeaturesKHR & setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT
67920     {
67921       constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_;
67922       return *this;
67923     }
67924 
setEventsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67925     PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT
67926     {
67927       events = events_;
67928       return *this;
67929     }
67930 
setImageViewFormatReinterpretationVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67931     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT
67932     {
67933       imageViewFormatReinterpretation = imageViewFormatReinterpretation_;
67934       return *this;
67935     }
67936 
setImageViewFormatSwizzleVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67937     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT
67938     {
67939       imageViewFormatSwizzle = imageViewFormatSwizzle_;
67940       return *this;
67941     }
67942 
setImageView2DOn3DImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67943     PhysicalDevicePortabilitySubsetFeaturesKHR & setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT
67944     {
67945       imageView2DOn3DImage = imageView2DOn3DImage_;
67946       return *this;
67947     }
67948 
setMultisampleArrayImageVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67949     PhysicalDevicePortabilitySubsetFeaturesKHR & setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT
67950     {
67951       multisampleArrayImage = multisampleArrayImage_;
67952       return *this;
67953     }
67954 
setMutableComparisonSamplersVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67955     PhysicalDevicePortabilitySubsetFeaturesKHR & setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT
67956     {
67957       mutableComparisonSamplers = mutableComparisonSamplers_;
67958       return *this;
67959     }
67960 
setPointPolygonsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67961     PhysicalDevicePortabilitySubsetFeaturesKHR & setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT
67962     {
67963       pointPolygons = pointPolygons_;
67964       return *this;
67965     }
67966 
setSamplerMipLodBiasVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67967     PhysicalDevicePortabilitySubsetFeaturesKHR & setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT
67968     {
67969       samplerMipLodBias = samplerMipLodBias_;
67970       return *this;
67971     }
67972 
setSeparateStencilMaskRefVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67973     PhysicalDevicePortabilitySubsetFeaturesKHR & setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT
67974     {
67975       separateStencilMaskRef = separateStencilMaskRef_;
67976       return *this;
67977     }
67978 
setShaderSampleRateInterpolationFunctionsVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67979     PhysicalDevicePortabilitySubsetFeaturesKHR & setShaderSampleRateInterpolationFunctions( VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT
67980     {
67981       shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_;
67982       return *this;
67983     }
67984 
setTessellationIsolinesVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67985     PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT
67986     {
67987       tessellationIsolines = tessellationIsolines_;
67988       return *this;
67989     }
67990 
setTessellationPointModeVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67991     PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT
67992     {
67993       tessellationPointMode = tessellationPointMode_;
67994       return *this;
67995     }
67996 
setTriangleFansVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR67997     PhysicalDevicePortabilitySubsetFeaturesKHR & setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT
67998     {
67999       triangleFans = triangleFans_;
68000       return *this;
68001     }
68002 
setVertexAttributeAccessBeyondStrideVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68003     PhysicalDevicePortabilitySubsetFeaturesKHR & setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT
68004     {
68005       vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_;
68006       return *this;
68007     }
68008 
68009 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68010     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
68011     {
68012       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
68013     }
68014 
operator VkPhysicalDevicePortabilitySubsetFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68015     operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT
68016     {
68017       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>( this );
68018     }
68019 
68020 
68021 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68022     auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const& ) const = default;
68023 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68024     bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68025     {
68026       return ( sType == rhs.sType )
68027           && ( pNext == rhs.pNext )
68028           && ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors )
68029           && ( events == rhs.events )
68030           && ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation )
68031           && ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle )
68032           && ( imageView2DOn3DImage == rhs.imageView2DOn3DImage )
68033           && ( multisampleArrayImage == rhs.multisampleArrayImage )
68034           && ( mutableComparisonSamplers == rhs.mutableComparisonSamplers )
68035           && ( pointPolygons == rhs.pointPolygons )
68036           && ( samplerMipLodBias == rhs.samplerMipLodBias )
68037           && ( separateStencilMaskRef == rhs.separateStencilMaskRef )
68038           && ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions )
68039           && ( tessellationIsolines == rhs.tessellationIsolines )
68040           && ( tessellationPointMode == rhs.tessellationPointMode )
68041           && ( triangleFans == rhs.triangleFans )
68042           && ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride );
68043     }
68044 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR68045     bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68046     {
68047       return !operator==( rhs );
68048     }
68049 #endif
68050 
68051 
68052 
68053   public:
68054     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
68055     void* pNext = {};
68056     VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {};
68057     VULKAN_HPP_NAMESPACE::Bool32 events = {};
68058     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {};
68059     VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {};
68060     VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {};
68061     VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {};
68062     VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {};
68063     VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {};
68064     VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {};
68065     VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {};
68066     VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {};
68067     VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {};
68068     VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {};
68069     VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {};
68070     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {};
68071 
68072   };
68073   static_assert( sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetFeaturesKHR ), "struct and wrapper have different size!" );
68074   static_assert( std::is_standard_layout<PhysicalDevicePortabilitySubsetFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
68075 
68076   template <>
68077   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR>
68078   {
68079     using Type = PhysicalDevicePortabilitySubsetFeaturesKHR;
68080   };
68081 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
68082 
68083 #ifdef VK_ENABLE_BETA_EXTENSIONS
68084   struct PhysicalDevicePortabilitySubsetPropertiesKHR
68085   {
68086     static const bool allowDuplicate = false;
68087     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
68088 
68089 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68090     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR(uint32_t minVertexInputBindingStrideAlignment_ = {}) VULKAN_HPP_NOEXCEPT
68091     : minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ )
68092     {}
68093 
68094     VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68095 
PhysicalDevicePortabilitySubsetPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68096     PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68097     {
68098       *this = rhs;
68099     }
68100 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68101 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68102     PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68103     {
68104       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs );
68105       return *this;
68106     }
68107 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68108     PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68109     {
68110       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) );
68111       return *this;
68112     }
68113 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68114     PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68115     {
68116       pNext = pNext_;
68117       return *this;
68118     }
68119 
setMinVertexInputBindingStrideAlignmentVULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68120     PhysicalDevicePortabilitySubsetPropertiesKHR & setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT
68121     {
68122       minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_;
68123       return *this;
68124     }
68125 
68126 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68127     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
68128     {
68129       return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
68130     }
68131 
operator VkPhysicalDevicePortabilitySubsetPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68132     operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT
68133     {
68134       return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>( this );
68135     }
68136 
68137 
68138 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68139     auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const& ) const = default;
68140 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68141     bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68142     {
68143       return ( sType == rhs.sType )
68144           && ( pNext == rhs.pNext )
68145           && ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment );
68146     }
68147 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR68148     bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68149     {
68150       return !operator==( rhs );
68151     }
68152 #endif
68153 
68154 
68155 
68156   public:
68157     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
68158     void* pNext = {};
68159     uint32_t minVertexInputBindingStrideAlignment = {};
68160 
68161   };
68162   static_assert( sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetPropertiesKHR ), "struct and wrapper have different size!" );
68163   static_assert( std::is_standard_layout<PhysicalDevicePortabilitySubsetPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
68164 
68165   template <>
68166   struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR>
68167   {
68168     using Type = PhysicalDevicePortabilitySubsetPropertiesKHR;
68169   };
68170 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
68171 
68172   struct PhysicalDevicePrivateDataFeaturesEXT
68173   {
68174     static const bool allowDuplicate = false;
68175     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
68176 
68177 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68178     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}) VULKAN_HPP_NOEXCEPT
68179     : privateData( privateData_ )
68180     {}
68181 
68182     VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68183 
PhysicalDevicePrivateDataFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68184     PhysicalDevicePrivateDataFeaturesEXT( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68185     {
68186       *this = rhs;
68187     }
68188 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68189 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68190     PhysicalDevicePrivateDataFeaturesEXT & operator=( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68191     {
68192       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT const *>( &rhs );
68193       return *this;
68194     }
68195 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68196     PhysicalDevicePrivateDataFeaturesEXT & operator=( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68197     {
68198       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePrivateDataFeaturesEXT ) );
68199       return *this;
68200     }
68201 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68202     PhysicalDevicePrivateDataFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68203     {
68204       pNext = pNext_;
68205       return *this;
68206     }
68207 
setPrivateDataVULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68208     PhysicalDevicePrivateDataFeaturesEXT & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
68209     {
68210       privateData = privateData_;
68211       return *this;
68212     }
68213 
68214 
operator VkPhysicalDevicePrivateDataFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68215     operator VkPhysicalDevicePrivateDataFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
68216     {
68217       return *reinterpret_cast<const VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
68218     }
68219 
operator VkPhysicalDevicePrivateDataFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68220     operator VkPhysicalDevicePrivateDataFeaturesEXT &() VULKAN_HPP_NOEXCEPT
68221     {
68222       return *reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>( this );
68223     }
68224 
68225 
68226 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68227     auto operator<=>( PhysicalDevicePrivateDataFeaturesEXT const& ) const = default;
68228 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68229     bool operator==( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68230     {
68231       return ( sType == rhs.sType )
68232           && ( pNext == rhs.pNext )
68233           && ( privateData == rhs.privateData );
68234     }
68235 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeaturesEXT68236     bool operator!=( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68237     {
68238       return !operator==( rhs );
68239     }
68240 #endif
68241 
68242 
68243 
68244   public:
68245     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT;
68246     void* pNext = {};
68247     VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
68248 
68249   };
68250   static_assert( sizeof( PhysicalDevicePrivateDataFeaturesEXT ) == sizeof( VkPhysicalDevicePrivateDataFeaturesEXT ), "struct and wrapper have different size!" );
68251   static_assert( std::is_standard_layout<PhysicalDevicePrivateDataFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
68252 
68253   template <>
68254   struct CppType<StructureType, StructureType::ePhysicalDevicePrivateDataFeaturesEXT>
68255   {
68256     using Type = PhysicalDevicePrivateDataFeaturesEXT;
68257   };
68258 
68259   struct PhysicalDeviceProtectedMemoryFeatures
68260   {
68261     static const bool allowDuplicate = false;
68262     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
68263 
68264 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68265     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures(VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}) VULKAN_HPP_NOEXCEPT
68266     : protectedMemory( protectedMemory_ )
68267     {}
68268 
68269     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68270 
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68271     PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68272     {
68273       *this = rhs;
68274     }
68275 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68276 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68277     PhysicalDeviceProtectedMemoryFeatures & operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68278     {
68279       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const *>( &rhs );
68280       return *this;
68281     }
68282 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68283     PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
68284     {
68285       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProtectedMemoryFeatures ) );
68286       return *this;
68287     }
68288 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68289     PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68290     {
68291       pNext = pNext_;
68292       return *this;
68293     }
68294 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68295     PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
68296     {
68297       protectedMemory = protectedMemory_;
68298       return *this;
68299     }
68300 
68301 
operator VkPhysicalDeviceProtectedMemoryFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68302     operator VkPhysicalDeviceProtectedMemoryFeatures const&() const VULKAN_HPP_NOEXCEPT
68303     {
68304       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>( this );
68305     }
68306 
operator VkPhysicalDeviceProtectedMemoryFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68307     operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
68308     {
68309       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>( this );
68310     }
68311 
68312 
68313 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68314     auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const& ) const = default;
68315 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68316     bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68317     {
68318       return ( sType == rhs.sType )
68319           && ( pNext == rhs.pNext )
68320           && ( protectedMemory == rhs.protectedMemory );
68321     }
68322 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures68323     bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
68324     {
68325       return !operator==( rhs );
68326     }
68327 #endif
68328 
68329 
68330 
68331   public:
68332     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
68333     void* pNext = {};
68334     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
68335 
68336   };
68337   static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" );
68338   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryFeatures>::value, "struct wrapper is not a standard layout!" );
68339 
68340   template <>
68341   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryFeatures>
68342   {
68343     using Type = PhysicalDeviceProtectedMemoryFeatures;
68344   };
68345 
68346   struct PhysicalDeviceProtectedMemoryProperties
68347   {
68348     static const bool allowDuplicate = false;
68349     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
68350 
68351 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68352     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties(VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}) VULKAN_HPP_NOEXCEPT
68353     : protectedNoFault( protectedNoFault_ )
68354     {}
68355 
68356     VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68357 
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68358     PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68359     {
68360       *this = rhs;
68361     }
68362 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68363 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68364     PhysicalDeviceProtectedMemoryProperties & operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68365     {
68366       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const *>( &rhs );
68367       return *this;
68368     }
68369 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68370     PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
68371     {
68372       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceProtectedMemoryProperties ) );
68373       return *this;
68374     }
68375 
68376 
operator VkPhysicalDeviceProtectedMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68377     operator VkPhysicalDeviceProtectedMemoryProperties const&() const VULKAN_HPP_NOEXCEPT
68378     {
68379       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>( this );
68380     }
68381 
operator VkPhysicalDeviceProtectedMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68382     operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
68383     {
68384       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>( this );
68385     }
68386 
68387 
68388 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68389     auto operator<=>( PhysicalDeviceProtectedMemoryProperties const& ) const = default;
68390 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68391     bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68392     {
68393       return ( sType == rhs.sType )
68394           && ( pNext == rhs.pNext )
68395           && ( protectedNoFault == rhs.protectedNoFault );
68396     }
68397 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties68398     bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
68399     {
68400       return !operator==( rhs );
68401     }
68402 #endif
68403 
68404 
68405 
68406   public:
68407     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
68408     void* pNext = {};
68409     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
68410 
68411   };
68412   static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" );
68413   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryProperties>::value, "struct wrapper is not a standard layout!" );
68414 
68415   template <>
68416   struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryProperties>
68417   {
68418     using Type = PhysicalDeviceProtectedMemoryProperties;
68419   };
68420 
68421   struct PhysicalDevicePushDescriptorPropertiesKHR
68422   {
68423     static const bool allowDuplicate = false;
68424     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
68425 
68426 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68427     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR(uint32_t maxPushDescriptors_ = {}) VULKAN_HPP_NOEXCEPT
68428     : maxPushDescriptors( maxPushDescriptors_ )
68429     {}
68430 
68431     VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68432 
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68433     PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68434     {
68435       *this = rhs;
68436     }
68437 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68438 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68439     PhysicalDevicePushDescriptorPropertiesKHR & operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68440     {
68441       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs );
68442       return *this;
68443     }
68444 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68445     PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68446     {
68447       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) );
68448       return *this;
68449     }
68450 
68451 
operator VkPhysicalDevicePushDescriptorPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68452     operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
68453     {
68454       return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
68455     }
68456 
operator VkPhysicalDevicePushDescriptorPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68457     operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
68458     {
68459       return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
68460     }
68461 
68462 
68463 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68464     auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const& ) const = default;
68465 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68466     bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68467     {
68468       return ( sType == rhs.sType )
68469           && ( pNext == rhs.pNext )
68470           && ( maxPushDescriptors == rhs.maxPushDescriptors );
68471     }
68472 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR68473     bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68474     {
68475       return !operator==( rhs );
68476     }
68477 #endif
68478 
68479 
68480 
68481   public:
68482     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
68483     void* pNext = {};
68484     uint32_t maxPushDescriptors = {};
68485 
68486   };
68487   static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" );
68488   static_assert( std::is_standard_layout<PhysicalDevicePushDescriptorPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
68489 
68490   template <>
68491   struct CppType<StructureType, StructureType::ePhysicalDevicePushDescriptorPropertiesKHR>
68492   {
68493     using Type = PhysicalDevicePushDescriptorPropertiesKHR;
68494   };
68495 
68496 #ifdef VK_ENABLE_BETA_EXTENSIONS
68497   struct PhysicalDeviceRayTracingFeaturesKHR
68498   {
68499     static const bool allowDuplicate = false;
68500     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingFeaturesKHR;
68501 
68502 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68503     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayTracing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling_ = {}) VULKAN_HPP_NOEXCEPT
68504     : rayTracing( rayTracing_ ), rayTracingShaderGroupHandleCaptureReplay( rayTracingShaderGroupHandleCaptureReplay_ ), rayTracingShaderGroupHandleCaptureReplayMixed( rayTracingShaderGroupHandleCaptureReplayMixed_ ), rayTracingAccelerationStructureCaptureReplay( rayTracingAccelerationStructureCaptureReplay_ ), rayTracingIndirectTraceRays( rayTracingIndirectTraceRays_ ), rayTracingIndirectAccelerationStructureBuild( rayTracingIndirectAccelerationStructureBuild_ ), rayTracingHostAccelerationStructureCommands( rayTracingHostAccelerationStructureCommands_ ), rayQuery( rayQuery_ ), rayTracingPrimitiveCulling( rayTracingPrimitiveCulling_ )
68505     {}
68506 
68507     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingFeaturesKHR( PhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68508 
PhysicalDeviceRayTracingFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68509     PhysicalDeviceRayTracingFeaturesKHR( VkPhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68510     {
68511       *this = rhs;
68512     }
68513 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68514 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68515     PhysicalDeviceRayTracingFeaturesKHR & operator=( VkPhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68516     {
68517       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR const *>( &rhs );
68518       return *this;
68519     }
68520 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68521     PhysicalDeviceRayTracingFeaturesKHR & operator=( PhysicalDeviceRayTracingFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68522     {
68523       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRayTracingFeaturesKHR ) );
68524       return *this;
68525     }
68526 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68527     PhysicalDeviceRayTracingFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68528     {
68529       pNext = pNext_;
68530       return *this;
68531     }
68532 
setRayTracingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68533     PhysicalDeviceRayTracingFeaturesKHR & setRayTracing( VULKAN_HPP_NAMESPACE::Bool32 rayTracing_ ) VULKAN_HPP_NOEXCEPT
68534     {
68535       rayTracing = rayTracing_;
68536       return *this;
68537     }
68538 
setRayTracingShaderGroupHandleCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68539     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
68540     {
68541       rayTracingShaderGroupHandleCaptureReplay = rayTracingShaderGroupHandleCaptureReplay_;
68542       return *this;
68543     }
68544 
setRayTracingShaderGroupHandleCaptureReplayMixedVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68545     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingShaderGroupHandleCaptureReplayMixed( VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT
68546     {
68547       rayTracingShaderGroupHandleCaptureReplayMixed = rayTracingShaderGroupHandleCaptureReplayMixed_;
68548       return *this;
68549     }
68550 
setRayTracingAccelerationStructureCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68551     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
68552     {
68553       rayTracingAccelerationStructureCaptureReplay = rayTracingAccelerationStructureCaptureReplay_;
68554       return *this;
68555     }
68556 
setRayTracingIndirectTraceRaysVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68557     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingIndirectTraceRays( VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays_ ) VULKAN_HPP_NOEXCEPT
68558     {
68559       rayTracingIndirectTraceRays = rayTracingIndirectTraceRays_;
68560       return *this;
68561     }
68562 
setRayTracingIndirectAccelerationStructureBuildVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68563     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingIndirectAccelerationStructureBuild( VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild_ ) VULKAN_HPP_NOEXCEPT
68564     {
68565       rayTracingIndirectAccelerationStructureBuild = rayTracingIndirectAccelerationStructureBuild_;
68566       return *this;
68567     }
68568 
setRayTracingHostAccelerationStructureCommandsVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68569     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingHostAccelerationStructureCommands( VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands_ ) VULKAN_HPP_NOEXCEPT
68570     {
68571       rayTracingHostAccelerationStructureCommands = rayTracingHostAccelerationStructureCommands_;
68572       return *this;
68573     }
68574 
setRayQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68575     PhysicalDeviceRayTracingFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT
68576     {
68577       rayQuery = rayQuery_;
68578       return *this;
68579     }
68580 
setRayTracingPrimitiveCullingVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68581     PhysicalDeviceRayTracingFeaturesKHR & setRayTracingPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
68582     {
68583       rayTracingPrimitiveCulling = rayTracingPrimitiveCulling_;
68584       return *this;
68585     }
68586 
68587 
operator VkPhysicalDeviceRayTracingFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68588     operator VkPhysicalDeviceRayTracingFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
68589     {
68590       return *reinterpret_cast<const VkPhysicalDeviceRayTracingFeaturesKHR*>( this );
68591     }
68592 
operator VkPhysicalDeviceRayTracingFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68593     operator VkPhysicalDeviceRayTracingFeaturesKHR &() VULKAN_HPP_NOEXCEPT
68594     {
68595       return *reinterpret_cast<VkPhysicalDeviceRayTracingFeaturesKHR*>( this );
68596     }
68597 
68598 
68599 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68600     auto operator<=>( PhysicalDeviceRayTracingFeaturesKHR const& ) const = default;
68601 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68602     bool operator==( PhysicalDeviceRayTracingFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68603     {
68604       return ( sType == rhs.sType )
68605           && ( pNext == rhs.pNext )
68606           && ( rayTracing == rhs.rayTracing )
68607           && ( rayTracingShaderGroupHandleCaptureReplay == rhs.rayTracingShaderGroupHandleCaptureReplay )
68608           && ( rayTracingShaderGroupHandleCaptureReplayMixed == rhs.rayTracingShaderGroupHandleCaptureReplayMixed )
68609           && ( rayTracingAccelerationStructureCaptureReplay == rhs.rayTracingAccelerationStructureCaptureReplay )
68610           && ( rayTracingIndirectTraceRays == rhs.rayTracingIndirectTraceRays )
68611           && ( rayTracingIndirectAccelerationStructureBuild == rhs.rayTracingIndirectAccelerationStructureBuild )
68612           && ( rayTracingHostAccelerationStructureCommands == rhs.rayTracingHostAccelerationStructureCommands )
68613           && ( rayQuery == rhs.rayQuery )
68614           && ( rayTracingPrimitiveCulling == rhs.rayTracingPrimitiveCulling );
68615     }
68616 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingFeaturesKHR68617     bool operator!=( PhysicalDeviceRayTracingFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68618     {
68619       return !operator==( rhs );
68620     }
68621 #endif
68622 
68623 
68624 
68625   public:
68626     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingFeaturesKHR;
68627     void* pNext = {};
68628     VULKAN_HPP_NAMESPACE::Bool32 rayTracing = {};
68629     VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplay = {};
68630     VULKAN_HPP_NAMESPACE::Bool32 rayTracingShaderGroupHandleCaptureReplayMixed = {};
68631     VULKAN_HPP_NAMESPACE::Bool32 rayTracingAccelerationStructureCaptureReplay = {};
68632     VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectTraceRays = {};
68633     VULKAN_HPP_NAMESPACE::Bool32 rayTracingIndirectAccelerationStructureBuild = {};
68634     VULKAN_HPP_NAMESPACE::Bool32 rayTracingHostAccelerationStructureCommands = {};
68635     VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {};
68636     VULKAN_HPP_NAMESPACE::Bool32 rayTracingPrimitiveCulling = {};
68637 
68638   };
68639   static_assert( sizeof( PhysicalDeviceRayTracingFeaturesKHR ) == sizeof( VkPhysicalDeviceRayTracingFeaturesKHR ), "struct and wrapper have different size!" );
68640   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
68641 
68642   template <>
68643   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingFeaturesKHR>
68644   {
68645     using Type = PhysicalDeviceRayTracingFeaturesKHR;
68646   };
68647 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
68648 
68649 #ifdef VK_ENABLE_BETA_EXTENSIONS
68650   struct PhysicalDeviceRayTracingPropertiesKHR
68651   {
68652     static const bool allowDuplicate = false;
68653     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesKHR;
68654 
68655 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68656     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesKHR(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxPrimitiveCount_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}, uint32_t shaderGroupHandleCaptureReplaySize_ = {}) VULKAN_HPP_NOEXCEPT
68657     : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxPrimitiveCount( maxPrimitiveCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ), shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ )
68658     {}
68659 
68660     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesKHR( PhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68661 
PhysicalDeviceRayTracingPropertiesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68662     PhysicalDeviceRayTracingPropertiesKHR( VkPhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68663     {
68664       *this = rhs;
68665     }
68666 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68667 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68668     PhysicalDeviceRayTracingPropertiesKHR & operator=( VkPhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68669     {
68670       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR const *>( &rhs );
68671       return *this;
68672     }
68673 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68674     PhysicalDeviceRayTracingPropertiesKHR & operator=( PhysicalDeviceRayTracingPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
68675     {
68676       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRayTracingPropertiesKHR ) );
68677       return *this;
68678     }
68679 
68680 
operator VkPhysicalDeviceRayTracingPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68681     operator VkPhysicalDeviceRayTracingPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT
68682     {
68683       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesKHR*>( this );
68684     }
68685 
operator VkPhysicalDeviceRayTracingPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68686     operator VkPhysicalDeviceRayTracingPropertiesKHR &() VULKAN_HPP_NOEXCEPT
68687     {
68688       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesKHR*>( this );
68689     }
68690 
68691 
68692 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68693     auto operator<=>( PhysicalDeviceRayTracingPropertiesKHR const& ) const = default;
68694 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68695     bool operator==( PhysicalDeviceRayTracingPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68696     {
68697       return ( sType == rhs.sType )
68698           && ( pNext == rhs.pNext )
68699           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
68700           && ( maxRecursionDepth == rhs.maxRecursionDepth )
68701           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
68702           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
68703           && ( maxGeometryCount == rhs.maxGeometryCount )
68704           && ( maxInstanceCount == rhs.maxInstanceCount )
68705           && ( maxPrimitiveCount == rhs.maxPrimitiveCount )
68706           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures )
68707           && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize );
68708     }
68709 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesKHR68710     bool operator!=( PhysicalDeviceRayTracingPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
68711     {
68712       return !operator==( rhs );
68713     }
68714 #endif
68715 
68716 
68717 
68718   public:
68719     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesKHR;
68720     void* pNext = {};
68721     uint32_t shaderGroupHandleSize = {};
68722     uint32_t maxRecursionDepth = {};
68723     uint32_t maxShaderGroupStride = {};
68724     uint32_t shaderGroupBaseAlignment = {};
68725     uint64_t maxGeometryCount = {};
68726     uint64_t maxInstanceCount = {};
68727     uint64_t maxPrimitiveCount = {};
68728     uint32_t maxDescriptorSetAccelerationStructures = {};
68729     uint32_t shaderGroupHandleCaptureReplaySize = {};
68730 
68731   };
68732   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesKHR ) == sizeof( VkPhysicalDeviceRayTracingPropertiesKHR ), "struct and wrapper have different size!" );
68733   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
68734 
68735   template <>
68736   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesKHR>
68737   {
68738     using Type = PhysicalDeviceRayTracingPropertiesKHR;
68739   };
68740 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
68741 
68742   struct PhysicalDeviceRayTracingPropertiesNV
68743   {
68744     static const bool allowDuplicate = false;
68745     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
68746 
68747 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68748     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxTriangleCount_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT
68749     : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxTriangleCount( maxTriangleCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
68750     {}
68751 
68752     VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68753 
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68754     PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68755     {
68756       *this = rhs;
68757     }
68758 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68759 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68760     PhysicalDeviceRayTracingPropertiesNV & operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68761     {
68762       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const *>( &rhs );
68763       return *this;
68764     }
68765 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68766     PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68767     {
68768       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRayTracingPropertiesNV ) );
68769       return *this;
68770     }
68771 
68772 
operator VkPhysicalDeviceRayTracingPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68773     operator VkPhysicalDeviceRayTracingPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
68774     {
68775       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>( this );
68776     }
68777 
operator VkPhysicalDeviceRayTracingPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68778     operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
68779     {
68780       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>( this );
68781     }
68782 
68783 
68784 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68785     auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const& ) const = default;
68786 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68787     bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
68788     {
68789       return ( sType == rhs.sType )
68790           && ( pNext == rhs.pNext )
68791           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
68792           && ( maxRecursionDepth == rhs.maxRecursionDepth )
68793           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
68794           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
68795           && ( maxGeometryCount == rhs.maxGeometryCount )
68796           && ( maxInstanceCount == rhs.maxInstanceCount )
68797           && ( maxTriangleCount == rhs.maxTriangleCount )
68798           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
68799     }
68800 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV68801     bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
68802     {
68803       return !operator==( rhs );
68804     }
68805 #endif
68806 
68807 
68808 
68809   public:
68810     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
68811     void* pNext = {};
68812     uint32_t shaderGroupHandleSize = {};
68813     uint32_t maxRecursionDepth = {};
68814     uint32_t maxShaderGroupStride = {};
68815     uint32_t shaderGroupBaseAlignment = {};
68816     uint64_t maxGeometryCount = {};
68817     uint64_t maxInstanceCount = {};
68818     uint64_t maxTriangleCount = {};
68819     uint32_t maxDescriptorSetAccelerationStructures = {};
68820 
68821   };
68822   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" );
68823   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesNV>::value, "struct wrapper is not a standard layout!" );
68824 
68825   template <>
68826   struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesNV>
68827   {
68828     using Type = PhysicalDeviceRayTracingPropertiesNV;
68829   };
68830 
68831   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
68832   {
68833     static const bool allowDuplicate = false;
68834     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
68835 
68836 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68837     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {}) VULKAN_HPP_NOEXCEPT
68838     : representativeFragmentTest( representativeFragmentTest_ )
68839     {}
68840 
68841     VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68842 
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68843     PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68844     {
68845       *this = rhs;
68846     }
68847 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68848 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68849     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68850     {
68851       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs );
68852       return *this;
68853     }
68854 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68855     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
68856     {
68857       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) );
68858       return *this;
68859     }
68860 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68861     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68862     {
68863       pNext = pNext_;
68864       return *this;
68865     }
68866 
setRepresentativeFragmentTestVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68867     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
68868     {
68869       representativeFragmentTest = representativeFragmentTest_;
68870       return *this;
68871     }
68872 
68873 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68874     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
68875     {
68876       return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
68877     }
68878 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68879     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
68880     {
68881       return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
68882     }
68883 
68884 
68885 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68886     auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& ) const = default;
68887 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68888     bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
68889     {
68890       return ( sType == rhs.sType )
68891           && ( pNext == rhs.pNext )
68892           && ( representativeFragmentTest == rhs.representativeFragmentTest );
68893     }
68894 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV68895     bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
68896     {
68897       return !operator==( rhs );
68898     }
68899 #endif
68900 
68901 
68902 
68903   public:
68904     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
68905     void* pNext = {};
68906     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {};
68907 
68908   };
68909   static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" );
68910   static_assert( std::is_standard_layout<PhysicalDeviceRepresentativeFragmentTestFeaturesNV>::value, "struct wrapper is not a standard layout!" );
68911 
68912   template <>
68913   struct CppType<StructureType, StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV>
68914   {
68915     using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
68916   };
68917 
68918   struct PhysicalDeviceRobustness2FeaturesEXT
68919   {
68920     static const bool allowDuplicate = false;
68921     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
68922 
68923 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68924     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {}) VULKAN_HPP_NOEXCEPT
68925     : robustBufferAccess2( robustBufferAccess2_ ), robustImageAccess2( robustImageAccess2_ ), nullDescriptor( nullDescriptor_ )
68926     {}
68927 
68928     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
68929 
PhysicalDeviceRobustness2FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68930     PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68931     {
68932       *this = rhs;
68933     }
68934 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
68935 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68936     PhysicalDeviceRobustness2FeaturesEXT & operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68937     {
68938       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs );
68939       return *this;
68940     }
68941 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68942     PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
68943     {
68944       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRobustness2FeaturesEXT ) );
68945       return *this;
68946     }
68947 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68948     PhysicalDeviceRobustness2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
68949     {
68950       pNext = pNext_;
68951       return *this;
68952     }
68953 
setRobustBufferAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68954     PhysicalDeviceRobustness2FeaturesEXT & setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
68955     {
68956       robustBufferAccess2 = robustBufferAccess2_;
68957       return *this;
68958     }
68959 
setRobustImageAccess2VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68960     PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT
68961     {
68962       robustImageAccess2 = robustImageAccess2_;
68963       return *this;
68964     }
68965 
setNullDescriptorVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68966     PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT
68967     {
68968       nullDescriptor = nullDescriptor_;
68969       return *this;
68970     }
68971 
68972 
operator VkPhysicalDeviceRobustness2FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68973     operator VkPhysicalDeviceRobustness2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
68974     {
68975       return *reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
68976     }
68977 
operator VkPhysicalDeviceRobustness2FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68978     operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
68979     {
68980       return *reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>( this );
68981     }
68982 
68983 
68984 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
68985     auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const& ) const = default;
68986 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68987     bool operator==( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68988     {
68989       return ( sType == rhs.sType )
68990           && ( pNext == rhs.pNext )
68991           && ( robustBufferAccess2 == rhs.robustBufferAccess2 )
68992           && ( robustImageAccess2 == rhs.robustImageAccess2 )
68993           && ( nullDescriptor == rhs.nullDescriptor );
68994     }
68995 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT68996     bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
68997     {
68998       return !operator==( rhs );
68999     }
69000 #endif
69001 
69002 
69003 
69004   public:
69005     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
69006     void* pNext = {};
69007     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {};
69008     VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {};
69009     VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {};
69010 
69011   };
69012   static_assert( sizeof( PhysicalDeviceRobustness2FeaturesEXT ) == sizeof( VkPhysicalDeviceRobustness2FeaturesEXT ), "struct and wrapper have different size!" );
69013   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
69014 
69015   template <>
69016   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2FeaturesEXT>
69017   {
69018     using Type = PhysicalDeviceRobustness2FeaturesEXT;
69019   };
69020 
69021   struct PhysicalDeviceRobustness2PropertiesEXT
69022   {
69023     static const bool allowDuplicate = false;
69024     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
69025 
69026 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69027     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {}) VULKAN_HPP_NOEXCEPT
69028     : robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ ), robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ )
69029     {}
69030 
69031     VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69032 
PhysicalDeviceRobustness2PropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69033     PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69034     {
69035       *this = rhs;
69036     }
69037 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69038 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69039     PhysicalDeviceRobustness2PropertiesEXT & operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69040     {
69041       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs );
69042       return *this;
69043     }
69044 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69045     PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69046     {
69047       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceRobustness2PropertiesEXT ) );
69048       return *this;
69049     }
69050 
69051 
operator VkPhysicalDeviceRobustness2PropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69052     operator VkPhysicalDeviceRobustness2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
69053     {
69054       return *reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
69055     }
69056 
operator VkPhysicalDeviceRobustness2PropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69057     operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
69058     {
69059       return *reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>( this );
69060     }
69061 
69062 
69063 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69064     auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const& ) const = default;
69065 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69066     bool operator==( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69067     {
69068       return ( sType == rhs.sType )
69069           && ( pNext == rhs.pNext )
69070           && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment )
69071           && ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment );
69072     }
69073 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT69074     bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69075     {
69076       return !operator==( rhs );
69077     }
69078 #endif
69079 
69080 
69081 
69082   public:
69083     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
69084     void* pNext = {};
69085     VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {};
69086     VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {};
69087 
69088   };
69089   static_assert( sizeof( PhysicalDeviceRobustness2PropertiesEXT ) == sizeof( VkPhysicalDeviceRobustness2PropertiesEXT ), "struct and wrapper have different size!" );
69090   static_assert( std::is_standard_layout<PhysicalDeviceRobustness2PropertiesEXT>::value, "struct wrapper is not a standard layout!" );
69091 
69092   template <>
69093   struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2PropertiesEXT>
69094   {
69095     using Type = PhysicalDeviceRobustness2PropertiesEXT;
69096   };
69097 
69098   struct PhysicalDeviceSampleLocationsPropertiesEXT
69099   {
69100     static const bool allowDuplicate = false;
69101     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
69102 
69103 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69104     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, std::array<float,2> const& sampleLocationCoordinateRange_ = {}, uint32_t sampleLocationSubPixelBits_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT
69105     : sampleLocationSampleCounts( sampleLocationSampleCounts_ ), maxSampleLocationGridSize( maxSampleLocationGridSize_ ), sampleLocationCoordinateRange( sampleLocationCoordinateRange_ ), sampleLocationSubPixelBits( sampleLocationSubPixelBits_ ), variableSampleLocations( variableSampleLocations_ )
69106     {}
69107 
69108     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69109 
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69110     PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69111     {
69112       *this = rhs;
69113     }
69114 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69115 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69116     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69117     {
69118       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs );
69119       return *this;
69120     }
69121 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69122     PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69123     {
69124       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) );
69125       return *this;
69126     }
69127 
69128 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69129     operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
69130     {
69131       return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
69132     }
69133 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69134     operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
69135     {
69136       return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
69137     }
69138 
69139 
69140 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69141     auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const& ) const = default;
69142 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69143     bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69144     {
69145       return ( sType == rhs.sType )
69146           && ( pNext == rhs.pNext )
69147           && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts )
69148           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize )
69149           && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange )
69150           && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits )
69151           && ( variableSampleLocations == rhs.variableSampleLocations );
69152     }
69153 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT69154     bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69155     {
69156       return !operator==( rhs );
69157     }
69158 #endif
69159 
69160 
69161 
69162   public:
69163     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
69164     void* pNext = {};
69165     VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {};
69166     VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
69167     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> sampleLocationCoordinateRange = {};
69168     uint32_t sampleLocationSubPixelBits = {};
69169     VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {};
69170 
69171   };
69172   static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" );
69173   static_assert( std::is_standard_layout<PhysicalDeviceSampleLocationsPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
69174 
69175   template <>
69176   struct CppType<StructureType, StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT>
69177   {
69178     using Type = PhysicalDeviceSampleLocationsPropertiesEXT;
69179   };
69180 
69181   struct PhysicalDeviceSamplerFilterMinmaxProperties
69182   {
69183     static const bool allowDuplicate = false;
69184     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
69185 
69186 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69187     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties(VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}) VULKAN_HPP_NOEXCEPT
69188     : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
69189     {}
69190 
69191     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69192 
PhysicalDeviceSamplerFilterMinmaxPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69193     PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
69194     {
69195       *this = rhs;
69196     }
69197 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69198 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69199     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
69200     {
69201       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs );
69202       return *this;
69203     }
69204 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69205     PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
69206     {
69207       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) );
69208       return *this;
69209     }
69210 
69211 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69212     operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&() const VULKAN_HPP_NOEXCEPT
69213     {
69214       return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
69215     }
69216 
operator VkPhysicalDeviceSamplerFilterMinmaxProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69217     operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
69218     {
69219       return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>( this );
69220     }
69221 
69222 
69223 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69224     auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const& ) const = default;
69225 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69226     bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
69227     {
69228       return ( sType == rhs.sType )
69229           && ( pNext == rhs.pNext )
69230           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
69231           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
69232     }
69233 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties69234     bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
69235     {
69236       return !operator==( rhs );
69237     }
69238 #endif
69239 
69240 
69241 
69242   public:
69243     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
69244     void* pNext = {};
69245     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
69246     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
69247 
69248   };
69249   static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxProperties ), "struct and wrapper have different size!" );
69250   static_assert( std::is_standard_layout<PhysicalDeviceSamplerFilterMinmaxProperties>::value, "struct wrapper is not a standard layout!" );
69251 
69252   template <>
69253   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties>
69254   {
69255     using Type = PhysicalDeviceSamplerFilterMinmaxProperties;
69256   };
69257   using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
69258 
69259   struct PhysicalDeviceSamplerYcbcrConversionFeatures
69260   {
69261     static const bool allowDuplicate = false;
69262     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
69263 
69264 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69265     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures(VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}) VULKAN_HPP_NOEXCEPT
69266     : samplerYcbcrConversion( samplerYcbcrConversion_ )
69267     {}
69268 
69269     VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69270 
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69271     PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69272     {
69273       *this = rhs;
69274     }
69275 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69276 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69277     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69278     {
69279       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs );
69280       return *this;
69281     }
69282 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69283     PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69284     {
69285       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) );
69286       return *this;
69287     }
69288 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69289     PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69290     {
69291       pNext = pNext_;
69292       return *this;
69293     }
69294 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69295     PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
69296     {
69297       samplerYcbcrConversion = samplerYcbcrConversion_;
69298       return *this;
69299     }
69300 
69301 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69302     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const VULKAN_HPP_NOEXCEPT
69303     {
69304       return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
69305     }
69306 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69307     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
69308     {
69309       return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
69310     }
69311 
69312 
69313 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69314     auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const& ) const = default;
69315 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69316     bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69317     {
69318       return ( sType == rhs.sType )
69319           && ( pNext == rhs.pNext )
69320           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
69321     }
69322 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures69323     bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69324     {
69325       return !operator==( rhs );
69326     }
69327 #endif
69328 
69329 
69330 
69331   public:
69332     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
69333     void* pNext = {};
69334     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
69335 
69336   };
69337   static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" );
69338   static_assert( std::is_standard_layout<PhysicalDeviceSamplerYcbcrConversionFeatures>::value, "struct wrapper is not a standard layout!" );
69339 
69340   template <>
69341   struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures>
69342   {
69343     using Type = PhysicalDeviceSamplerYcbcrConversionFeatures;
69344   };
69345   using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
69346 
69347   struct PhysicalDeviceScalarBlockLayoutFeatures
69348   {
69349     static const bool allowDuplicate = false;
69350     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
69351 
69352 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69353     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}) VULKAN_HPP_NOEXCEPT
69354     : scalarBlockLayout( scalarBlockLayout_ )
69355     {}
69356 
69357     VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69358 
PhysicalDeviceScalarBlockLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69359     PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69360     {
69361       *this = rhs;
69362     }
69363 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69364 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69365     PhysicalDeviceScalarBlockLayoutFeatures & operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69366     {
69367       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs );
69368       return *this;
69369     }
69370 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69371     PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69372     {
69373       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) );
69374       return *this;
69375     }
69376 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69377     PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69378     {
69379       pNext = pNext_;
69380       return *this;
69381     }
69382 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69383     PhysicalDeviceScalarBlockLayoutFeatures & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
69384     {
69385       scalarBlockLayout = scalarBlockLayout_;
69386       return *this;
69387     }
69388 
69389 
operator VkPhysicalDeviceScalarBlockLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69390     operator VkPhysicalDeviceScalarBlockLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
69391     {
69392       return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
69393     }
69394 
operator VkPhysicalDeviceScalarBlockLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69395     operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
69396     {
69397       return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>( this );
69398     }
69399 
69400 
69401 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69402     auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const& ) const = default;
69403 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69404     bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69405     {
69406       return ( sType == rhs.sType )
69407           && ( pNext == rhs.pNext )
69408           && ( scalarBlockLayout == rhs.scalarBlockLayout );
69409     }
69410 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures69411     bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69412     {
69413       return !operator==( rhs );
69414     }
69415 #endif
69416 
69417 
69418 
69419   public:
69420     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
69421     void* pNext = {};
69422     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
69423 
69424   };
69425   static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeatures ), "struct and wrapper have different size!" );
69426   static_assert( std::is_standard_layout<PhysicalDeviceScalarBlockLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
69427 
69428   template <>
69429   struct CppType<StructureType, StructureType::ePhysicalDeviceScalarBlockLayoutFeatures>
69430   {
69431     using Type = PhysicalDeviceScalarBlockLayoutFeatures;
69432   };
69433   using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
69434 
69435   struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures
69436   {
69437     static const bool allowDuplicate = false;
69438     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69439 
69440 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69441     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures(VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}) VULKAN_HPP_NOEXCEPT
69442     : separateDepthStencilLayouts( separateDepthStencilLayouts_ )
69443     {}
69444 
69445     VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69446 
PhysicalDeviceSeparateDepthStencilLayoutsFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69447     PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69448     {
69449       *this = rhs;
69450     }
69451 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69452 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69453     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69454     {
69455       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs );
69456       return *this;
69457     }
69458 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69459     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
69460     {
69461       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) );
69462       return *this;
69463     }
69464 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69465     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69466     {
69467       pNext = pNext_;
69468       return *this;
69469     }
69470 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69471     PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
69472     {
69473       separateDepthStencilLayouts = separateDepthStencilLayouts_;
69474       return *this;
69475     }
69476 
69477 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69478     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&() const VULKAN_HPP_NOEXCEPT
69479     {
69480       return *reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
69481     }
69482 
operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69483     operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
69484     {
69485       return *reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>( this );
69486     }
69487 
69488 
69489 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69490     auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& ) const = default;
69491 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69492     bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69493     {
69494       return ( sType == rhs.sType )
69495           && ( pNext == rhs.pNext )
69496           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts );
69497     }
69498 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures69499     bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
69500     {
69501       return !operator==( rhs );
69502     }
69503 #endif
69504 
69505 
69506 
69507   public:
69508     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69509     void* pNext = {};
69510     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
69511 
69512   };
69513   static_assert( sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) == sizeof( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures ), "struct and wrapper have different size!" );
69514   static_assert( std::is_standard_layout<PhysicalDeviceSeparateDepthStencilLayoutsFeatures>::value, "struct wrapper is not a standard layout!" );
69515 
69516   template <>
69517   struct CppType<StructureType, StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures>
69518   {
69519     using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69520   };
69521   using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
69522 
69523   struct PhysicalDeviceShaderAtomicFloatFeaturesEXT
69524   {
69525     static const bool allowDuplicate = false;
69526     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
69527 
69528 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69529     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ = {}) VULKAN_HPP_NOEXCEPT
69530     : shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ ), shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ ), shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ ), shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ ), shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ ), shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ ), shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ ), shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ ), shaderImageFloat32Atomics( shaderImageFloat32Atomics_ ), shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ ), sparseImageFloat32Atomics( sparseImageFloat32Atomics_ ), sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ )
69531     {}
69532 
69533     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69534 
PhysicalDeviceShaderAtomicFloatFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69535     PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69536     {
69537       *this = rhs;
69538     }
69539 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69540 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69541     PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69542     {
69543       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs );
69544       return *this;
69545     }
69546 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69547     PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
69548     {
69549       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) );
69550       return *this;
69551     }
69552 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69553     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69554     {
69555       pNext = pNext_;
69556       return *this;
69557     }
69558 
setShaderBufferFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69559     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69560     {
69561       shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_;
69562       return *this;
69563     }
69564 
setShaderBufferFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69565     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69566     {
69567       shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_;
69568       return *this;
69569     }
69570 
setShaderBufferFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69571     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
69572     {
69573       shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_;
69574       return *this;
69575     }
69576 
setShaderBufferFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69577     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69578     {
69579       shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_;
69580       return *this;
69581     }
69582 
setShaderSharedFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69583     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69584     {
69585       shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_;
69586       return *this;
69587     }
69588 
setShaderSharedFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69589     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69590     {
69591       shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_;
69592       return *this;
69593     }
69594 
setShaderSharedFloat64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69595     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
69596     {
69597       shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_;
69598       return *this;
69599     }
69600 
setShaderSharedFloat64AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69601     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69602     {
69603       shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_;
69604       return *this;
69605     }
69606 
setShaderImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69607     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69608     {
69609       shaderImageFloat32Atomics = shaderImageFloat32Atomics_;
69610       return *this;
69611     }
69612 
setShaderImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69613     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69614     {
69615       shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_;
69616       return *this;
69617     }
69618 
setSparseImageFloat32AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69619     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
69620     {
69621       sparseImageFloat32Atomics = sparseImageFloat32Atomics_;
69622       return *this;
69623     }
69624 
setSparseImageFloat32AtomicAddVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69625     PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
69626     {
69627       sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_;
69628       return *this;
69629     }
69630 
69631 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69632     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
69633     {
69634       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
69635     }
69636 
operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69637     operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT
69638     {
69639       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>( this );
69640     }
69641 
69642 
69643 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69644     auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& ) const = default;
69645 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69646     bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69647     {
69648       return ( sType == rhs.sType )
69649           && ( pNext == rhs.pNext )
69650           && ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics )
69651           && ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd )
69652           && ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics )
69653           && ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd )
69654           && ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics )
69655           && ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd )
69656           && ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics )
69657           && ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd )
69658           && ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics )
69659           && ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd )
69660           && ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics )
69661           && ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd );
69662     }
69663 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT69664     bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
69665     {
69666       return !operator==( rhs );
69667     }
69668 #endif
69669 
69670 
69671 
69672   public:
69673     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
69674     void* pNext = {};
69675     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {};
69676     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {};
69677     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {};
69678     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {};
69679     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {};
69680     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {};
69681     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {};
69682     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {};
69683     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {};
69684     VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {};
69685     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {};
69686     VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {};
69687 
69688   };
69689   static_assert( sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT ), "struct and wrapper have different size!" );
69690   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicFloatFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
69691 
69692   template <>
69693   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT>
69694   {
69695     using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT;
69696   };
69697 
69698   struct PhysicalDeviceShaderAtomicInt64Features
69699   {
69700     static const bool allowDuplicate = false;
69701     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
69702 
69703 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69704     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT
69705     : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
69706     {}
69707 
69708     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69709 
PhysicalDeviceShaderAtomicInt64FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69710     PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
69711     {
69712       *this = rhs;
69713     }
69714 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69715 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69716     PhysicalDeviceShaderAtomicInt64Features & operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
69717     {
69718       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const *>( &rhs );
69719       return *this;
69720     }
69721 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69722     PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
69723     {
69724       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderAtomicInt64Features ) );
69725       return *this;
69726     }
69727 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69728     PhysicalDeviceShaderAtomicInt64Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69729     {
69730       pNext = pNext_;
69731       return *this;
69732     }
69733 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69734     PhysicalDeviceShaderAtomicInt64Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
69735     {
69736       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
69737       return *this;
69738     }
69739 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69740     PhysicalDeviceShaderAtomicInt64Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
69741     {
69742       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
69743       return *this;
69744     }
69745 
69746 
operator VkPhysicalDeviceShaderAtomicInt64Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69747     operator VkPhysicalDeviceShaderAtomicInt64Features const&() const VULKAN_HPP_NOEXCEPT
69748     {
69749       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>( this );
69750     }
69751 
operator VkPhysicalDeviceShaderAtomicInt64Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69752     operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
69753     {
69754       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>( this );
69755     }
69756 
69757 
69758 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69759     auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const& ) const = default;
69760 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69761     bool operator==( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
69762     {
69763       return ( sType == rhs.sType )
69764           && ( pNext == rhs.pNext )
69765           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
69766           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
69767     }
69768 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features69769     bool operator!=( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT
69770     {
69771       return !operator==( rhs );
69772     }
69773 #endif
69774 
69775 
69776 
69777   public:
69778     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
69779     void* pNext = {};
69780     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
69781     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
69782 
69783   };
69784   static_assert( sizeof( PhysicalDeviceShaderAtomicInt64Features ) == sizeof( VkPhysicalDeviceShaderAtomicInt64Features ), "struct and wrapper have different size!" );
69785   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicInt64Features>::value, "struct wrapper is not a standard layout!" );
69786 
69787   template <>
69788   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicInt64Features>
69789   {
69790     using Type = PhysicalDeviceShaderAtomicInt64Features;
69791   };
69792   using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
69793 
69794   struct PhysicalDeviceShaderClockFeaturesKHR
69795   {
69796     static const bool allowDuplicate = false;
69797     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
69798 
69799 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69800     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {}) VULKAN_HPP_NOEXCEPT
69801     : shaderSubgroupClock( shaderSubgroupClock_ ), shaderDeviceClock( shaderDeviceClock_ )
69802     {}
69803 
69804     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69805 
PhysicalDeviceShaderClockFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69806     PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69807     {
69808       *this = rhs;
69809     }
69810 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69811 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69812     PhysicalDeviceShaderClockFeaturesKHR & operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69813     {
69814       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs );
69815       return *this;
69816     }
69817 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69818     PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
69819     {
69820       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderClockFeaturesKHR ) );
69821       return *this;
69822     }
69823 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69824     PhysicalDeviceShaderClockFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
69825     {
69826       pNext = pNext_;
69827       return *this;
69828     }
69829 
setShaderSubgroupClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69830     PhysicalDeviceShaderClockFeaturesKHR & setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
69831     {
69832       shaderSubgroupClock = shaderSubgroupClock_;
69833       return *this;
69834     }
69835 
setShaderDeviceClockVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69836     PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT
69837     {
69838       shaderDeviceClock = shaderDeviceClock_;
69839       return *this;
69840     }
69841 
69842 
operator VkPhysicalDeviceShaderClockFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69843     operator VkPhysicalDeviceShaderClockFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
69844     {
69845       return *reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
69846     }
69847 
operator VkPhysicalDeviceShaderClockFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69848     operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
69849     {
69850       return *reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>( this );
69851     }
69852 
69853 
69854 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69855     auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const& ) const = default;
69856 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69857     bool operator==( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69858     {
69859       return ( sType == rhs.sType )
69860           && ( pNext == rhs.pNext )
69861           && ( shaderSubgroupClock == rhs.shaderSubgroupClock )
69862           && ( shaderDeviceClock == rhs.shaderDeviceClock );
69863     }
69864 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR69865     bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
69866     {
69867       return !operator==( rhs );
69868     }
69869 #endif
69870 
69871 
69872 
69873   public:
69874     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
69875     void* pNext = {};
69876     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {};
69877     VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {};
69878 
69879   };
69880   static_assert( sizeof( PhysicalDeviceShaderClockFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderClockFeaturesKHR ), "struct and wrapper have different size!" );
69881   static_assert( std::is_standard_layout<PhysicalDeviceShaderClockFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
69882 
69883   template <>
69884   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderClockFeaturesKHR>
69885   {
69886     using Type = PhysicalDeviceShaderClockFeaturesKHR;
69887   };
69888 
69889   struct PhysicalDeviceShaderCoreProperties2AMD
69890   {
69891     static const bool allowDuplicate = false;
69892     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
69893 
69894 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69895     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD(VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {}, uint32_t activeComputeUnitCount_ = {}) VULKAN_HPP_NOEXCEPT
69896     : shaderCoreFeatures( shaderCoreFeatures_ ), activeComputeUnitCount( activeComputeUnitCount_ )
69897     {}
69898 
69899     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69900 
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69901     PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
69902     {
69903       *this = rhs;
69904     }
69905 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69906 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69907     PhysicalDeviceShaderCoreProperties2AMD & operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
69908     {
69909       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs );
69910       return *this;
69911     }
69912 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69913     PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
69914     {
69915       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderCoreProperties2AMD ) );
69916       return *this;
69917     }
69918 
69919 
operator VkPhysicalDeviceShaderCoreProperties2AMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69920     operator VkPhysicalDeviceShaderCoreProperties2AMD const&() const VULKAN_HPP_NOEXCEPT
69921     {
69922       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
69923     }
69924 
operator VkPhysicalDeviceShaderCoreProperties2AMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69925     operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
69926     {
69927       return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
69928     }
69929 
69930 
69931 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
69932     auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const& ) const = default;
69933 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69934     bool operator==( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
69935     {
69936       return ( sType == rhs.sType )
69937           && ( pNext == rhs.pNext )
69938           && ( shaderCoreFeatures == rhs.shaderCoreFeatures )
69939           && ( activeComputeUnitCount == rhs.activeComputeUnitCount );
69940     }
69941 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD69942     bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT
69943     {
69944       return !operator==( rhs );
69945     }
69946 #endif
69947 
69948 
69949 
69950   public:
69951     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
69952     void* pNext = {};
69953     VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {};
69954     uint32_t activeComputeUnitCount = {};
69955 
69956   };
69957   static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "struct and wrapper have different size!" );
69958   static_assert( std::is_standard_layout<PhysicalDeviceShaderCoreProperties2AMD>::value, "struct wrapper is not a standard layout!" );
69959 
69960   template <>
69961   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreProperties2AMD>
69962   {
69963     using Type = PhysicalDeviceShaderCoreProperties2AMD;
69964   };
69965 
69966   struct PhysicalDeviceShaderCorePropertiesAMD
69967   {
69968     static const bool allowDuplicate = false;
69969     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
69970 
69971 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69972     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD(uint32_t shaderEngineCount_ = {}, uint32_t shaderArraysPerEngineCount_ = {}, uint32_t computeUnitsPerShaderArray_ = {}, uint32_t simdPerComputeUnit_ = {}, uint32_t wavefrontsPerSimd_ = {}, uint32_t wavefrontSize_ = {}, uint32_t sgprsPerSimd_ = {}, uint32_t minSgprAllocation_ = {}, uint32_t maxSgprAllocation_ = {}, uint32_t sgprAllocationGranularity_ = {}, uint32_t vgprsPerSimd_ = {}, uint32_t minVgprAllocation_ = {}, uint32_t maxVgprAllocation_ = {}, uint32_t vgprAllocationGranularity_ = {}) VULKAN_HPP_NOEXCEPT
69973     : shaderEngineCount( shaderEngineCount_ ), shaderArraysPerEngineCount( shaderArraysPerEngineCount_ ), computeUnitsPerShaderArray( computeUnitsPerShaderArray_ ), simdPerComputeUnit( simdPerComputeUnit_ ), wavefrontsPerSimd( wavefrontsPerSimd_ ), wavefrontSize( wavefrontSize_ ), sgprsPerSimd( sgprsPerSimd_ ), minSgprAllocation( minSgprAllocation_ ), maxSgprAllocation( maxSgprAllocation_ ), sgprAllocationGranularity( sgprAllocationGranularity_ ), vgprsPerSimd( vgprsPerSimd_ ), minVgprAllocation( minVgprAllocation_ ), maxVgprAllocation( maxVgprAllocation_ ), vgprAllocationGranularity( vgprAllocationGranularity_ )
69974     {}
69975 
69976     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
69977 
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69978     PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
69979     {
69980       *this = rhs;
69981     }
69982 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
69983 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69984     PhysicalDeviceShaderCorePropertiesAMD & operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
69985     {
69986       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs );
69987       return *this;
69988     }
69989 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69990     PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
69991     {
69992       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderCorePropertiesAMD ) );
69993       return *this;
69994     }
69995 
69996 
operator VkPhysicalDeviceShaderCorePropertiesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD69997     operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
69998     {
69999       return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
70000     }
70001 
operator VkPhysicalDeviceShaderCorePropertiesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70002     operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
70003     {
70004       return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
70005     }
70006 
70007 
70008 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70009     auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const& ) const = default;
70010 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70011     bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70012     {
70013       return ( sType == rhs.sType )
70014           && ( pNext == rhs.pNext )
70015           && ( shaderEngineCount == rhs.shaderEngineCount )
70016           && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount )
70017           && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray )
70018           && ( simdPerComputeUnit == rhs.simdPerComputeUnit )
70019           && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd )
70020           && ( wavefrontSize == rhs.wavefrontSize )
70021           && ( sgprsPerSimd == rhs.sgprsPerSimd )
70022           && ( minSgprAllocation == rhs.minSgprAllocation )
70023           && ( maxSgprAllocation == rhs.maxSgprAllocation )
70024           && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity )
70025           && ( vgprsPerSimd == rhs.vgprsPerSimd )
70026           && ( minVgprAllocation == rhs.minVgprAllocation )
70027           && ( maxVgprAllocation == rhs.maxVgprAllocation )
70028           && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
70029     }
70030 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD70031     bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
70032     {
70033       return !operator==( rhs );
70034     }
70035 #endif
70036 
70037 
70038 
70039   public:
70040     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
70041     void* pNext = {};
70042     uint32_t shaderEngineCount = {};
70043     uint32_t shaderArraysPerEngineCount = {};
70044     uint32_t computeUnitsPerShaderArray = {};
70045     uint32_t simdPerComputeUnit = {};
70046     uint32_t wavefrontsPerSimd = {};
70047     uint32_t wavefrontSize = {};
70048     uint32_t sgprsPerSimd = {};
70049     uint32_t minSgprAllocation = {};
70050     uint32_t maxSgprAllocation = {};
70051     uint32_t sgprAllocationGranularity = {};
70052     uint32_t vgprsPerSimd = {};
70053     uint32_t minVgprAllocation = {};
70054     uint32_t maxVgprAllocation = {};
70055     uint32_t vgprAllocationGranularity = {};
70056 
70057   };
70058   static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" );
70059   static_assert( std::is_standard_layout<PhysicalDeviceShaderCorePropertiesAMD>::value, "struct wrapper is not a standard layout!" );
70060 
70061   template <>
70062   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesAMD>
70063   {
70064     using Type = PhysicalDeviceShaderCorePropertiesAMD;
70065   };
70066 
70067   struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
70068   {
70069     static const bool allowDuplicate = false;
70070     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
70071 
70072 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70073     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {}) VULKAN_HPP_NOEXCEPT
70074     : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
70075     {}
70076 
70077     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70078 
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70079     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70080     {
70081       *this = rhs;
70082     }
70083 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70084 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70085     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70086     {
70087       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const *>( &rhs );
70088       return *this;
70089     }
70090 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70091     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70092     {
70093       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) );
70094       return *this;
70095     }
70096 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70097     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70098     {
70099       pNext = pNext_;
70100       return *this;
70101     }
70102 
setShaderDemoteToHelperInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70103     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
70104     {
70105       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
70106       return *this;
70107     }
70108 
70109 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70110     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70111     {
70112       return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
70113     }
70114 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70115     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
70116     {
70117       return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
70118     }
70119 
70120 
70121 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70122     auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& ) const = default;
70123 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70124     bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70125     {
70126       return ( sType == rhs.sType )
70127           && ( pNext == rhs.pNext )
70128           && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
70129     }
70130 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT70131     bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70132     {
70133       return !operator==( rhs );
70134     }
70135 #endif
70136 
70137 
70138 
70139   public:
70140     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
70141     void* pNext = {};
70142     VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
70143 
70144   };
70145   static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" );
70146   static_assert( std::is_standard_layout<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70147 
70148   template <>
70149   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>
70150   {
70151     using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
70152   };
70153 
70154   struct PhysicalDeviceShaderDrawParametersFeatures
70155   {
70156     static const bool allowDuplicate = false;
70157     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
70158 
70159 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70160     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}) VULKAN_HPP_NOEXCEPT
70161     : shaderDrawParameters( shaderDrawParameters_ )
70162     {}
70163 
70164     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70165 
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70166     PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70167     {
70168       *this = rhs;
70169     }
70170 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70171 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70172     PhysicalDeviceShaderDrawParametersFeatures & operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70173     {
70174       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs );
70175       return *this;
70176     }
70177 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70178     PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70179     {
70180       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderDrawParametersFeatures ) );
70181       return *this;
70182     }
70183 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70184     PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70185     {
70186       pNext = pNext_;
70187       return *this;
70188     }
70189 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70190     PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
70191     {
70192       shaderDrawParameters = shaderDrawParameters_;
70193       return *this;
70194     }
70195 
70196 
operator VkPhysicalDeviceShaderDrawParametersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70197     operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const VULKAN_HPP_NOEXCEPT
70198     {
70199       return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
70200     }
70201 
operator VkPhysicalDeviceShaderDrawParametersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70202     operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
70203     {
70204       return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
70205     }
70206 
70207 
70208 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70209     auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const& ) const = default;
70210 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70211     bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70212     {
70213       return ( sType == rhs.sType )
70214           && ( pNext == rhs.pNext )
70215           && ( shaderDrawParameters == rhs.shaderDrawParameters );
70216     }
70217 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures70218     bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70219     {
70220       return !operator==( rhs );
70221     }
70222 #endif
70223 
70224 
70225 
70226   public:
70227     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
70228     void* pNext = {};
70229     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
70230 
70231   };
70232   static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" );
70233   static_assert( std::is_standard_layout<PhysicalDeviceShaderDrawParametersFeatures>::value, "struct wrapper is not a standard layout!" );
70234 
70235   template <>
70236   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDrawParametersFeatures>
70237   {
70238     using Type = PhysicalDeviceShaderDrawParametersFeatures;
70239   };
70240   using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
70241 
70242   struct PhysicalDeviceShaderFloat16Int8Features
70243   {
70244     static const bool allowDuplicate = false;
70245     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
70246 
70247 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70248     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features(VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}) VULKAN_HPP_NOEXCEPT
70249     : shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ )
70250     {}
70251 
70252     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70253 
PhysicalDeviceShaderFloat16Int8FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70254     PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
70255     {
70256       *this = rhs;
70257     }
70258 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70259 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70260     PhysicalDeviceShaderFloat16Int8Features & operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
70261     {
70262       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const *>( &rhs );
70263       return *this;
70264     }
70265 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70266     PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
70267     {
70268       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderFloat16Int8Features ) );
70269       return *this;
70270     }
70271 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70272     PhysicalDeviceShaderFloat16Int8Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70273     {
70274       pNext = pNext_;
70275       return *this;
70276     }
70277 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70278     PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
70279     {
70280       shaderFloat16 = shaderFloat16_;
70281       return *this;
70282     }
70283 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70284     PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
70285     {
70286       shaderInt8 = shaderInt8_;
70287       return *this;
70288     }
70289 
70290 
operator VkPhysicalDeviceShaderFloat16Int8Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70291     operator VkPhysicalDeviceShaderFloat16Int8Features const&() const VULKAN_HPP_NOEXCEPT
70292     {
70293       return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>( this );
70294     }
70295 
operator VkPhysicalDeviceShaderFloat16Int8Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70296     operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
70297     {
70298       return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>( this );
70299     }
70300 
70301 
70302 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70303     auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const& ) const = default;
70304 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70305     bool operator==( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
70306     {
70307       return ( sType == rhs.sType )
70308           && ( pNext == rhs.pNext )
70309           && ( shaderFloat16 == rhs.shaderFloat16 )
70310           && ( shaderInt8 == rhs.shaderInt8 );
70311     }
70312 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features70313     bool operator!=( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT
70314     {
70315       return !operator==( rhs );
70316     }
70317 #endif
70318 
70319 
70320 
70321   public:
70322     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
70323     void* pNext = {};
70324     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
70325     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
70326 
70327   };
70328   static_assert( sizeof( PhysicalDeviceShaderFloat16Int8Features ) == sizeof( VkPhysicalDeviceShaderFloat16Int8Features ), "struct and wrapper have different size!" );
70329   static_assert( std::is_standard_layout<PhysicalDeviceShaderFloat16Int8Features>::value, "struct wrapper is not a standard layout!" );
70330 
70331   template <>
70332   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderFloat16Int8Features>
70333   {
70334     using Type = PhysicalDeviceShaderFloat16Int8Features;
70335   };
70336   using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
70337   using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
70338 
70339   struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
70340   {
70341     static const bool allowDuplicate = false;
70342     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
70343 
70344 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70345     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT
70346     : shaderImageInt64Atomics( shaderImageInt64Atomics_ ), sparseImageInt64Atomics( sparseImageInt64Atomics_ )
70347     {}
70348 
70349     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70350 
PhysicalDeviceShaderImageAtomicInt64FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70351     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70352     {
70353       *this = rhs;
70354     }
70355 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70356 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70357     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70358     {
70359       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs );
70360       return *this;
70361     }
70362 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70363     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
70364     {
70365       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) );
70366       return *this;
70367     }
70368 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70369     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70370     {
70371       pNext = pNext_;
70372       return *this;
70373     }
70374 
setShaderImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70375     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
70376     {
70377       shaderImageInt64Atomics = shaderImageInt64Atomics_;
70378       return *this;
70379     }
70380 
setSparseImageInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70381     PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
70382     {
70383       sparseImageInt64Atomics = sparseImageInt64Atomics_;
70384       return *this;
70385     }
70386 
70387 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70388     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
70389     {
70390       return *reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
70391     }
70392 
operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70393     operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT
70394     {
70395       return *reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>( this );
70396     }
70397 
70398 
70399 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70400     auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& ) const = default;
70401 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70402     bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70403     {
70404       return ( sType == rhs.sType )
70405           && ( pNext == rhs.pNext )
70406           && ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics )
70407           && ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics );
70408     }
70409 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT70410     bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
70411     {
70412       return !operator==( rhs );
70413     }
70414 #endif
70415 
70416 
70417 
70418   public:
70419     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
70420     void* pNext = {};
70421     VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {};
70422     VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {};
70423 
70424   };
70425   static_assert( sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) == sizeof( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT ), "struct and wrapper have different size!" );
70426   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
70427 
70428   template <>
70429   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
70430   {
70431     using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
70432   };
70433 
70434   struct PhysicalDeviceShaderImageFootprintFeaturesNV
70435   {
70436     static const bool allowDuplicate = false;
70437     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
70438 
70439 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70440     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {}) VULKAN_HPP_NOEXCEPT
70441     : imageFootprint( imageFootprint_ )
70442     {}
70443 
70444     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70445 
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70446     PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70447     {
70448       *this = rhs;
70449     }
70450 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70451 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70452     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70453     {
70454       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs );
70455       return *this;
70456     }
70457 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70458     PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70459     {
70460       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) );
70461       return *this;
70462     }
70463 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70464     PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70465     {
70466       pNext = pNext_;
70467       return *this;
70468     }
70469 
setImageFootprintVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70470     PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT
70471     {
70472       imageFootprint = imageFootprint_;
70473       return *this;
70474     }
70475 
70476 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70477     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
70478     {
70479       return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
70480     }
70481 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70482     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
70483     {
70484       return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
70485     }
70486 
70487 
70488 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70489     auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const& ) const = default;
70490 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70491     bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70492     {
70493       return ( sType == rhs.sType )
70494           && ( pNext == rhs.pNext )
70495           && ( imageFootprint == rhs.imageFootprint );
70496     }
70497 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV70498     bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70499     {
70500       return !operator==( rhs );
70501     }
70502 #endif
70503 
70504 
70505 
70506   public:
70507     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
70508     void* pNext = {};
70509     VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {};
70510 
70511   };
70512   static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" );
70513   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageFootprintFeaturesNV>::value, "struct wrapper is not a standard layout!" );
70514 
70515   template <>
70516   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV>
70517   {
70518     using Type = PhysicalDeviceShaderImageFootprintFeaturesNV;
70519   };
70520 
70521   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
70522   {
70523     static const bool allowDuplicate = false;
70524     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
70525 
70526 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70527     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {}) VULKAN_HPP_NOEXCEPT
70528     : shaderIntegerFunctions2( shaderIntegerFunctions2_ )
70529     {}
70530 
70531     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70532 
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70533     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
70534     {
70535       *this = rhs;
70536     }
70537 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70538 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70539     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
70540     {
70541       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs );
70542       return *this;
70543     }
70544 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70545     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
70546     {
70547       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) );
70548       return *this;
70549     }
70550 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70551     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70552     {
70553       pNext = pNext_;
70554       return *this;
70555     }
70556 
setShaderIntegerFunctions2VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70557     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
70558     {
70559       shaderIntegerFunctions2 = shaderIntegerFunctions2_;
70560       return *this;
70561     }
70562 
70563 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70564     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&() const VULKAN_HPP_NOEXCEPT
70565     {
70566       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
70567     }
70568 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70569     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
70570     {
70571       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
70572     }
70573 
70574 
70575 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70576     auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& ) const = default;
70577 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70578     bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
70579     {
70580       return ( sType == rhs.sType )
70581           && ( pNext == rhs.pNext )
70582           && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
70583     }
70584 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL70585     bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
70586     {
70587       return !operator==( rhs );
70588     }
70589 #endif
70590 
70591 
70592 
70593   public:
70594     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
70595     void* pNext = {};
70596     VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {};
70597 
70598   };
70599   static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "struct and wrapper have different size!" );
70600   static_assert( std::is_standard_layout<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>::value, "struct wrapper is not a standard layout!" );
70601 
70602   template <>
70603   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
70604   {
70605     using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
70606   };
70607 
70608   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
70609   {
70610     static const bool allowDuplicate = false;
70611     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
70612 
70613 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70614     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {}) VULKAN_HPP_NOEXCEPT
70615     : shaderSMBuiltins( shaderSMBuiltins_ )
70616     {}
70617 
70618     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70619 
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70620     PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70621     {
70622       *this = rhs;
70623     }
70624 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70625 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70626     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70627     {
70628       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs );
70629       return *this;
70630     }
70631 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70632     PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70633     {
70634       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) );
70635       return *this;
70636     }
70637 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70638     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70639     {
70640       pNext = pNext_;
70641       return *this;
70642     }
70643 
setShaderSMBuiltinsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70644     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT
70645     {
70646       shaderSMBuiltins = shaderSMBuiltins_;
70647       return *this;
70648     }
70649 
70650 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70651     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
70652     {
70653       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
70654     }
70655 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70656     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
70657     {
70658       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
70659     }
70660 
70661 
70662 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70663     auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& ) const = default;
70664 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70665     bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70666     {
70667       return ( sType == rhs.sType )
70668           && ( pNext == rhs.pNext )
70669           && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
70670     }
70671 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV70672     bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70673     {
70674       return !operator==( rhs );
70675     }
70676 #endif
70677 
70678 
70679 
70680   public:
70681     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
70682     void* pNext = {};
70683     VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {};
70684 
70685   };
70686   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" );
70687   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
70688 
70689   template <>
70690   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV>
70691   {
70692     using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV;
70693   };
70694 
70695   struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
70696   {
70697     static const bool allowDuplicate = false;
70698     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
70699 
70700 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70701     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV(uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}) VULKAN_HPP_NOEXCEPT
70702     : shaderSMCount( shaderSMCount_ ), shaderWarpsPerSM( shaderWarpsPerSM_ )
70703     {}
70704 
70705     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70706 
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70707     PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70708     {
70709       *this = rhs;
70710     }
70711 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70712 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70713     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70714     {
70715       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs );
70716       return *this;
70717     }
70718 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70719     PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70720     {
70721       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) );
70722       return *this;
70723     }
70724 
70725 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70726     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
70727     {
70728       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
70729     }
70730 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70731     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
70732     {
70733       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
70734     }
70735 
70736 
70737 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70738     auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& ) const = default;
70739 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70740     bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70741     {
70742       return ( sType == rhs.sType )
70743           && ( pNext == rhs.pNext )
70744           && ( shaderSMCount == rhs.shaderSMCount )
70745           && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
70746     }
70747 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV70748     bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
70749     {
70750       return !operator==( rhs );
70751     }
70752 #endif
70753 
70754 
70755 
70756   public:
70757     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
70758     void* pNext = {};
70759     uint32_t shaderSMCount = {};
70760     uint32_t shaderWarpsPerSM = {};
70761 
70762   };
70763   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" );
70764   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
70765 
70766   template <>
70767   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV>
70768   {
70769     using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV;
70770   };
70771 
70772   struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures
70773   {
70774     static const bool allowDuplicate = false;
70775     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
70776 
70777 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70778     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}) VULKAN_HPP_NOEXCEPT
70779     : shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
70780     {}
70781 
70782     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70783 
PhysicalDeviceShaderSubgroupExtendedTypesFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70784     PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70785     {
70786       *this = rhs;
70787     }
70788 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70789 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70790     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70791     {
70792       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs );
70793       return *this;
70794     }
70795 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70796     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
70797     {
70798       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) );
70799       return *this;
70800     }
70801 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70802     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70803     {
70804       pNext = pNext_;
70805       return *this;
70806     }
70807 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70808     PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
70809     {
70810       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
70811       return *this;
70812     }
70813 
70814 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70815     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&() const VULKAN_HPP_NOEXCEPT
70816     {
70817       return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
70818     }
70819 
operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70820     operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
70821     {
70822       return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>( this );
70823     }
70824 
70825 
70826 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70827     auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& ) const = default;
70828 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70829     bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70830     {
70831       return ( sType == rhs.sType )
70832           && ( pNext == rhs.pNext )
70833           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes );
70834     }
70835 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures70836     bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
70837     {
70838       return !operator==( rhs );
70839     }
70840 #endif
70841 
70842 
70843 
70844   public:
70845     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
70846     void* pNext = {};
70847     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
70848 
70849   };
70850   static_assert( sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) == sizeof( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures ), "struct and wrapper have different size!" );
70851   static_assert( std::is_standard_layout<PhysicalDeviceShaderSubgroupExtendedTypesFeatures>::value, "struct wrapper is not a standard layout!" );
70852 
70853   template <>
70854   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures>
70855   {
70856     using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
70857   };
70858   using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
70859 
70860   struct PhysicalDeviceShaderTerminateInvocationFeaturesKHR
70861   {
70862     static const bool allowDuplicate = false;
70863     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR;
70864 
70865 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShaderTerminateInvocationFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70866     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {}) VULKAN_HPP_NOEXCEPT
70867     : shaderTerminateInvocation( shaderTerminateInvocation_ )
70868     {}
70869 
70870     VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70871 
PhysicalDeviceShaderTerminateInvocationFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70872     PhysicalDeviceShaderTerminateInvocationFeaturesKHR( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70873     {
70874       *this = rhs;
70875     }
70876 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70877 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70878     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70879     {
70880       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR const *>( &rhs );
70881       return *this;
70882     }
70883 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70884     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
70885     {
70886       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShaderTerminateInvocationFeaturesKHR ) );
70887       return *this;
70888     }
70889 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70890     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70891     {
70892       pNext = pNext_;
70893       return *this;
70894     }
70895 
setShaderTerminateInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70896     PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
70897     {
70898       shaderTerminateInvocation = shaderTerminateInvocation_;
70899       return *this;
70900     }
70901 
70902 
operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70903     operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT
70904     {
70905       return *reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>( this );
70906     }
70907 
operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70908     operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR &() VULKAN_HPP_NOEXCEPT
70909     {
70910       return *reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>( this );
70911     }
70912 
70913 
70914 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
70915     auto operator<=>( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& ) const = default;
70916 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70917     bool operator==( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70918     {
70919       return ( sType == rhs.sType )
70920           && ( pNext == rhs.pNext )
70921           && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation );
70922     }
70923 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeaturesKHR70924     bool operator!=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
70925     {
70926       return !operator==( rhs );
70927     }
70928 #endif
70929 
70930 
70931 
70932   public:
70933     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR;
70934     void* pNext = {};
70935     VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {};
70936 
70937   };
70938   static_assert( sizeof( PhysicalDeviceShaderTerminateInvocationFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR ), "struct and wrapper have different size!" );
70939   static_assert( std::is_standard_layout<PhysicalDeviceShaderTerminateInvocationFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
70940 
70941   template <>
70942   struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR>
70943   {
70944     using Type = PhysicalDeviceShaderTerminateInvocationFeaturesKHR;
70945   };
70946 
70947   struct PhysicalDeviceShadingRateImageFeaturesNV
70948   {
70949     static const bool allowDuplicate = false;
70950     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
70951 
70952 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70953     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {}) VULKAN_HPP_NOEXCEPT
70954     : shadingRateImage( shadingRateImage_ ), shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
70955     {}
70956 
70957     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
70958 
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70959     PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70960     {
70961       *this = rhs;
70962     }
70963 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
70964 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70965     PhysicalDeviceShadingRateImageFeaturesNV & operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70966     {
70967       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs );
70968       return *this;
70969     }
70970 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70971     PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
70972     {
70973       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) );
70974       return *this;
70975     }
70976 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70977     PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
70978     {
70979       pNext = pNext_;
70980       return *this;
70981     }
70982 
setShadingRateImageVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70983     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT
70984     {
70985       shadingRateImage = shadingRateImage_;
70986       return *this;
70987     }
70988 
setShadingRateCoarseSampleOrderVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70989     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
70990     {
70991       shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
70992       return *this;
70993     }
70994 
70995 
operator VkPhysicalDeviceShadingRateImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV70996     operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT
70997     {
70998       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
70999     }
71000 
operator VkPhysicalDeviceShadingRateImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71001     operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
71002     {
71003       return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
71004     }
71005 
71006 
71007 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71008     auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const& ) const = default;
71009 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71010     bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71011     {
71012       return ( sType == rhs.sType )
71013           && ( pNext == rhs.pNext )
71014           && ( shadingRateImage == rhs.shadingRateImage )
71015           && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
71016     }
71017 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV71018     bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71019     {
71020       return !operator==( rhs );
71021     }
71022 #endif
71023 
71024 
71025 
71026   public:
71027     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
71028     void* pNext = {};
71029     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {};
71030     VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {};
71031 
71032   };
71033   static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" );
71034   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
71035 
71036   template <>
71037   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImageFeaturesNV>
71038   {
71039     using Type = PhysicalDeviceShadingRateImageFeaturesNV;
71040   };
71041 
71042   struct PhysicalDeviceShadingRateImagePropertiesNV
71043   {
71044     static const bool allowDuplicate = false;
71045     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
71046 
71047 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71048     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV(VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {}, uint32_t shadingRatePaletteSize_ = {}, uint32_t shadingRateMaxCoarseSamples_ = {}) VULKAN_HPP_NOEXCEPT
71049     : shadingRateTexelSize( shadingRateTexelSize_ ), shadingRatePaletteSize( shadingRatePaletteSize_ ), shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
71050     {}
71051 
71052     VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71053 
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71054     PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
71055     {
71056       *this = rhs;
71057     }
71058 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71059 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71060     PhysicalDeviceShadingRateImagePropertiesNV & operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
71061     {
71062       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs );
71063       return *this;
71064     }
71065 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71066     PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
71067     {
71068       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) );
71069       return *this;
71070     }
71071 
71072 
operator VkPhysicalDeviceShadingRateImagePropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71073     operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const VULKAN_HPP_NOEXCEPT
71074     {
71075       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
71076     }
71077 
operator VkPhysicalDeviceShadingRateImagePropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71078     operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
71079     {
71080       return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
71081     }
71082 
71083 
71084 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71085     auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const& ) const = default;
71086 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71087     bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71088     {
71089       return ( sType == rhs.sType )
71090           && ( pNext == rhs.pNext )
71091           && ( shadingRateTexelSize == rhs.shadingRateTexelSize )
71092           && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize )
71093           && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
71094     }
71095 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV71096     bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
71097     {
71098       return !operator==( rhs );
71099     }
71100 #endif
71101 
71102 
71103 
71104   public:
71105     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
71106     void* pNext = {};
71107     VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {};
71108     uint32_t shadingRatePaletteSize = {};
71109     uint32_t shadingRateMaxCoarseSamples = {};
71110 
71111   };
71112   static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" );
71113   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImagePropertiesNV>::value, "struct wrapper is not a standard layout!" );
71114 
71115   template <>
71116   struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImagePropertiesNV>
71117   {
71118     using Type = PhysicalDeviceShadingRateImagePropertiesNV;
71119   };
71120 
71121   struct PhysicalDeviceSubgroupProperties
71122   {
71123     static const bool allowDuplicate = false;
71124     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties;
71125 
71126 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71127     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties(uint32_t subgroupSize_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages_ = {}, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {}) VULKAN_HPP_NOEXCEPT
71128     : subgroupSize( subgroupSize_ ), supportedStages( supportedStages_ ), supportedOperations( supportedOperations_ ), quadOperationsInAllStages( quadOperationsInAllStages_ )
71129     {}
71130 
71131     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71132 
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71133     PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71134     {
71135       *this = rhs;
71136     }
71137 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71138 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71139     PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71140     {
71141       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const *>( &rhs );
71142       return *this;
71143     }
71144 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71145     PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71146     {
71147       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSubgroupProperties ) );
71148       return *this;
71149     }
71150 
71151 
operator VkPhysicalDeviceSubgroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71152     operator VkPhysicalDeviceSubgroupProperties const&() const VULKAN_HPP_NOEXCEPT
71153     {
71154       return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>( this );
71155     }
71156 
operator VkPhysicalDeviceSubgroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71157     operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
71158     {
71159       return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>( this );
71160     }
71161 
71162 
71163 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71164     auto operator<=>( PhysicalDeviceSubgroupProperties const& ) const = default;
71165 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71166     bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
71167     {
71168       return ( sType == rhs.sType )
71169           && ( pNext == rhs.pNext )
71170           && ( subgroupSize == rhs.subgroupSize )
71171           && ( supportedStages == rhs.supportedStages )
71172           && ( supportedOperations == rhs.supportedOperations )
71173           && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
71174     }
71175 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties71176     bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
71177     {
71178       return !operator==( rhs );
71179     }
71180 #endif
71181 
71182 
71183 
71184   public:
71185     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
71186     void* pNext = {};
71187     uint32_t subgroupSize = {};
71188     VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {};
71189     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {};
71190     VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {};
71191 
71192   };
71193   static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" );
71194   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupProperties>::value, "struct wrapper is not a standard layout!" );
71195 
71196   template <>
71197   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupProperties>
71198   {
71199     using Type = PhysicalDeviceSubgroupProperties;
71200   };
71201 
71202   struct PhysicalDeviceSubgroupSizeControlFeaturesEXT
71203   {
71204     static const bool allowDuplicate = false;
71205     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
71206 
71207 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71208     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {}) VULKAN_HPP_NOEXCEPT
71209     : subgroupSizeControl( subgroupSizeControl_ ), computeFullSubgroups( computeFullSubgroups_ )
71210     {}
71211 
71212     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71213 
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71214     PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71215     {
71216       *this = rhs;
71217     }
71218 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71219 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71220     PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71221     {
71222       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT const *>( &rhs );
71223       return *this;
71224     }
71225 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71226     PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71227     {
71228       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) );
71229       return *this;
71230     }
71231 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71232     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71233     {
71234       pNext = pNext_;
71235       return *this;
71236     }
71237 
setSubgroupSizeControlVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71238     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
71239     {
71240       subgroupSizeControl = subgroupSizeControl_;
71241       return *this;
71242     }
71243 
setComputeFullSubgroupsVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71244     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
71245     {
71246       computeFullSubgroups = computeFullSubgroups_;
71247       return *this;
71248     }
71249 
71250 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71251     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71252     {
71253       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
71254     }
71255 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71256     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71257     {
71258       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
71259     }
71260 
71261 
71262 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71263     auto operator<=>( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& ) const = default;
71264 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71265     bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71266     {
71267       return ( sType == rhs.sType )
71268           && ( pNext == rhs.pNext )
71269           && ( subgroupSizeControl == rhs.subgroupSizeControl )
71270           && ( computeFullSubgroups == rhs.computeFullSubgroups );
71271     }
71272 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT71273     bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71274     {
71275       return !operator==( rhs );
71276     }
71277 #endif
71278 
71279 
71280 
71281   public:
71282     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
71283     void* pNext = {};
71284     VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
71285     VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
71286 
71287   };
71288   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "struct and wrapper have different size!" );
71289   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71290 
71291   template <>
71292   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT>
71293   {
71294     using Type = PhysicalDeviceSubgroupSizeControlFeaturesEXT;
71295   };
71296 
71297   struct PhysicalDeviceSubgroupSizeControlPropertiesEXT
71298   {
71299     static const bool allowDuplicate = false;
71300     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
71301 
71302 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71303     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT(uint32_t minSubgroupSize_ = {}, uint32_t maxSubgroupSize_ = {}, uint32_t maxComputeWorkgroupSubgroups_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {}) VULKAN_HPP_NOEXCEPT
71304     : minSubgroupSize( minSubgroupSize_ ), maxSubgroupSize( maxSubgroupSize_ ), maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ), requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
71305     {}
71306 
71307     VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71308 
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71309     PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71310     {
71311       *this = rhs;
71312     }
71313 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71314 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71315     PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71316     {
71317       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT const *>( &rhs );
71318       return *this;
71319     }
71320 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71321     PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71322     {
71323       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) );
71324       return *this;
71325     }
71326 
71327 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71328     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
71329     {
71330       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
71331     }
71332 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71333     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71334     {
71335       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
71336     }
71337 
71338 
71339 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71340     auto operator<=>( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& ) const = default;
71341 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71342     bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71343     {
71344       return ( sType == rhs.sType )
71345           && ( pNext == rhs.pNext )
71346           && ( minSubgroupSize == rhs.minSubgroupSize )
71347           && ( maxSubgroupSize == rhs.maxSubgroupSize )
71348           && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups )
71349           && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages );
71350     }
71351 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT71352     bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71353     {
71354       return !operator==( rhs );
71355     }
71356 #endif
71357 
71358 
71359 
71360   public:
71361     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
71362     void* pNext = {};
71363     uint32_t minSubgroupSize = {};
71364     uint32_t maxSubgroupSize = {};
71365     uint32_t maxComputeWorkgroupSubgroups = {};
71366     VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
71367 
71368   };
71369   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "struct and wrapper have different size!" );
71370   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
71371 
71372   template <>
71373   struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT>
71374   {
71375     using Type = PhysicalDeviceSubgroupSizeControlPropertiesEXT;
71376   };
71377 
71378   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
71379   {
71380     static const bool allowDuplicate = false;
71381     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
71382 
71383 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71384     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {}) VULKAN_HPP_NOEXCEPT
71385     : texelBufferAlignment( texelBufferAlignment_ )
71386     {}
71387 
71388     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71389 
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71390     PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71391     {
71392       *this = rhs;
71393     }
71394 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71395 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71396     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71397     {
71398       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs );
71399       return *this;
71400     }
71401 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71402     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71403     {
71404       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) );
71405       return *this;
71406     }
71407 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71408     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71409     {
71410       pNext = pNext_;
71411       return *this;
71412     }
71413 
setTexelBufferAlignmentVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71414     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
71415     {
71416       texelBufferAlignment = texelBufferAlignment_;
71417       return *this;
71418     }
71419 
71420 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71421     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71422     {
71423       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
71424     }
71425 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71426     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71427     {
71428       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
71429     }
71430 
71431 
71432 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71433     auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& ) const = default;
71434 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71435     bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71436     {
71437       return ( sType == rhs.sType )
71438           && ( pNext == rhs.pNext )
71439           && ( texelBufferAlignment == rhs.texelBufferAlignment );
71440     }
71441 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT71442     bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71443     {
71444       return !operator==( rhs );
71445     }
71446 #endif
71447 
71448 
71449 
71450   public:
71451     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
71452     void* pNext = {};
71453     VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {};
71454 
71455   };
71456   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" );
71457   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71458 
71459   template <>
71460   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT>
71461   {
71462     using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
71463   };
71464 
71465   struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT
71466   {
71467     static const bool allowDuplicate = false;
71468     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
71469 
71470 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71471     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {}) VULKAN_HPP_NOEXCEPT
71472     : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ), storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ), uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ), uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
71473     {}
71474 
71475     VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71476 
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71477     PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71478     {
71479       *this = rhs;
71480     }
71481 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71482 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71483     PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71484     {
71485       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT const *>( &rhs );
71486       return *this;
71487     }
71488 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71489     PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71490     {
71491       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) );
71492       return *this;
71493     }
71494 
71495 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71496     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
71497     {
71498       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
71499     }
71500 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71501     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71502     {
71503       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
71504     }
71505 
71506 
71507 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71508     auto operator<=>( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& ) const = default;
71509 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71510     bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71511     {
71512       return ( sType == rhs.sType )
71513           && ( pNext == rhs.pNext )
71514           && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes )
71515           && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment )
71516           && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes )
71517           && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
71518     }
71519 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT71520     bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71521     {
71522       return !operator==( rhs );
71523     }
71524 #endif
71525 
71526 
71527 
71528   public:
71529     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
71530     void* pNext = {};
71531     VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
71532     VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
71533     VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
71534     VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
71535 
71536   };
71537   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" );
71538   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
71539 
71540   template <>
71541   struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT>
71542   {
71543     using Type = PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
71544   };
71545 
71546   struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
71547   {
71548     static const bool allowDuplicate = false;
71549     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
71550 
71551 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71552     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {}) VULKAN_HPP_NOEXCEPT
71553     : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
71554     {}
71555 
71556     VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71557 
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71558     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71559     {
71560       *this = rhs;
71561     }
71562 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71563 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71564     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71565     {
71566       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const *>( &rhs );
71567       return *this;
71568     }
71569 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71570     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71571     {
71572       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) );
71573       return *this;
71574     }
71575 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71576     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71577     {
71578       pNext = pNext_;
71579       return *this;
71580     }
71581 
setTextureCompressionASTC_HDRVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71582     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
71583     {
71584       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
71585       return *this;
71586     }
71587 
71588 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71589     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71590     {
71591       return *reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
71592     }
71593 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71594     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71595     {
71596       return *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
71597     }
71598 
71599 
71600 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71601     auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& ) const = default;
71602 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71603     bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71604     {
71605       return ( sType == rhs.sType )
71606           && ( pNext == rhs.pNext )
71607           && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR );
71608     }
71609 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT71610     bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71611     {
71612       return !operator==( rhs );
71613     }
71614 #endif
71615 
71616 
71617 
71618   public:
71619     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
71620     void* pNext = {};
71621     VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
71622 
71623   };
71624   static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "struct and wrapper have different size!" );
71625   static_assert( std::is_standard_layout<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71626 
71627   template <>
71628   struct CppType<StructureType, StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT>
71629   {
71630     using Type = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
71631   };
71632 
71633   struct PhysicalDeviceTimelineSemaphoreFeatures
71634   {
71635     static const bool allowDuplicate = false;
71636     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
71637 
71638 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71639     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures(VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}) VULKAN_HPP_NOEXCEPT
71640     : timelineSemaphore( timelineSemaphore_ )
71641     {}
71642 
71643     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71644 
PhysicalDeviceTimelineSemaphoreFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71645     PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71646     {
71647       *this = rhs;
71648     }
71649 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71650 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71651     PhysicalDeviceTimelineSemaphoreFeatures & operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71652     {
71653       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs );
71654       return *this;
71655     }
71656 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71657     PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71658     {
71659       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) );
71660       return *this;
71661     }
71662 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71663     PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71664     {
71665       pNext = pNext_;
71666       return *this;
71667     }
71668 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71669     PhysicalDeviceTimelineSemaphoreFeatures & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
71670     {
71671       timelineSemaphore = timelineSemaphore_;
71672       return *this;
71673     }
71674 
71675 
operator VkPhysicalDeviceTimelineSemaphoreFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71676     operator VkPhysicalDeviceTimelineSemaphoreFeatures const&() const VULKAN_HPP_NOEXCEPT
71677     {
71678       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
71679     }
71680 
operator VkPhysicalDeviceTimelineSemaphoreFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71681     operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
71682     {
71683       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>( this );
71684     }
71685 
71686 
71687 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71688     auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const& ) const = default;
71689 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71690     bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71691     {
71692       return ( sType == rhs.sType )
71693           && ( pNext == rhs.pNext )
71694           && ( timelineSemaphore == rhs.timelineSemaphore );
71695     }
71696 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures71697     bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
71698     {
71699       return !operator==( rhs );
71700     }
71701 #endif
71702 
71703 
71704 
71705   public:
71706     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
71707     void* pNext = {};
71708     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
71709 
71710   };
71711   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) == sizeof( VkPhysicalDeviceTimelineSemaphoreFeatures ), "struct and wrapper have different size!" );
71712   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreFeatures>::value, "struct wrapper is not a standard layout!" );
71713 
71714   template <>
71715   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreFeatures>
71716   {
71717     using Type = PhysicalDeviceTimelineSemaphoreFeatures;
71718   };
71719   using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
71720 
71721   struct PhysicalDeviceTimelineSemaphoreProperties
71722   {
71723     static const bool allowDuplicate = false;
71724     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
71725 
71726 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71727     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties(uint64_t maxTimelineSemaphoreValueDifference_ = {}) VULKAN_HPP_NOEXCEPT
71728     : maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
71729     {}
71730 
71731     VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71732 
PhysicalDeviceTimelineSemaphorePropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71733     PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71734     {
71735       *this = rhs;
71736     }
71737 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71738 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71739     PhysicalDeviceTimelineSemaphoreProperties & operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71740     {
71741       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs );
71742       return *this;
71743     }
71744 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71745     PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
71746     {
71747       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTimelineSemaphoreProperties ) );
71748       return *this;
71749     }
71750 
71751 
operator VkPhysicalDeviceTimelineSemaphoreProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71752     operator VkPhysicalDeviceTimelineSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT
71753     {
71754       return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
71755     }
71756 
operator VkPhysicalDeviceTimelineSemaphoreProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71757     operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
71758     {
71759       return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>( this );
71760     }
71761 
71762 
71763 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71764     auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const& ) const = default;
71765 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71766     bool operator==( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
71767     {
71768       return ( sType == rhs.sType )
71769           && ( pNext == rhs.pNext )
71770           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference );
71771     }
71772 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties71773     bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
71774     {
71775       return !operator==( rhs );
71776     }
71777 #endif
71778 
71779 
71780 
71781   public:
71782     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
71783     void* pNext = {};
71784     uint64_t maxTimelineSemaphoreValueDifference = {};
71785 
71786   };
71787   static_assert( sizeof( PhysicalDeviceTimelineSemaphoreProperties ) == sizeof( VkPhysicalDeviceTimelineSemaphoreProperties ), "struct and wrapper have different size!" );
71788   static_assert( std::is_standard_layout<PhysicalDeviceTimelineSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
71789 
71790   template <>
71791   struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreProperties>
71792   {
71793     using Type = PhysicalDeviceTimelineSemaphoreProperties;
71794   };
71795   using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
71796 
71797   struct PhysicalDeviceTransformFeedbackFeaturesEXT
71798   {
71799     static const bool allowDuplicate = false;
71800     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
71801 
71802 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71803     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {}) VULKAN_HPP_NOEXCEPT
71804     : transformFeedback( transformFeedback_ ), geometryStreams( geometryStreams_ )
71805     {}
71806 
71807     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71808 
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71809     PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71810     {
71811       *this = rhs;
71812     }
71813 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71814 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71815     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71816     {
71817       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs );
71818       return *this;
71819     }
71820 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71821     PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71822     {
71823       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) );
71824       return *this;
71825     }
71826 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71827     PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
71828     {
71829       pNext = pNext_;
71830       return *this;
71831     }
71832 
setTransformFeedbackVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71833     PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
71834     {
71835       transformFeedback = transformFeedback_;
71836       return *this;
71837     }
71838 
setGeometryStreamsVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71839     PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT
71840     {
71841       geometryStreams = geometryStreams_;
71842       return *this;
71843     }
71844 
71845 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71846     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
71847     {
71848       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
71849     }
71850 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71851     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
71852     {
71853       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
71854     }
71855 
71856 
71857 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71858     auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const& ) const = default;
71859 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71860     bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71861     {
71862       return ( sType == rhs.sType )
71863           && ( pNext == rhs.pNext )
71864           && ( transformFeedback == rhs.transformFeedback )
71865           && ( geometryStreams == rhs.geometryStreams );
71866     }
71867 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT71868     bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71869     {
71870       return !operator==( rhs );
71871     }
71872 #endif
71873 
71874 
71875 
71876   public:
71877     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
71878     void* pNext = {};
71879     VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {};
71880     VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {};
71881 
71882   };
71883   static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" );
71884   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
71885 
71886   template <>
71887   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT>
71888   {
71889     using Type = PhysicalDeviceTransformFeedbackFeaturesEXT;
71890   };
71891 
71892   struct PhysicalDeviceTransformFeedbackPropertiesEXT
71893   {
71894     static const bool allowDuplicate = false;
71895     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
71896 
71897 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71898     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT(uint32_t maxTransformFeedbackStreams_ = {}, uint32_t maxTransformFeedbackBuffers_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize_ = {}, uint32_t maxTransformFeedbackStreamDataSize_ = {}, uint32_t maxTransformFeedbackBufferDataSize_ = {}, uint32_t maxTransformFeedbackBufferDataStride_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {}) VULKAN_HPP_NOEXCEPT
71899     : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ ), maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ ), maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ ), maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ ), maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ ), maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ ), transformFeedbackQueries( transformFeedbackQueries_ ), transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ ), transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ ), transformFeedbackDraw( transformFeedbackDraw_ )
71900     {}
71901 
71902     VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71903 
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71904     PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71905     {
71906       *this = rhs;
71907     }
71908 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
71909 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71910     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71911     {
71912       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs );
71913       return *this;
71914     }
71915 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71916     PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
71917     {
71918       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) );
71919       return *this;
71920     }
71921 
71922 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71923     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
71924     {
71925       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
71926     }
71927 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71928     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
71929     {
71930       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
71931     }
71932 
71933 
71934 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
71935     auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const& ) const = default;
71936 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71937     bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71938     {
71939       return ( sType == rhs.sType )
71940           && ( pNext == rhs.pNext )
71941           && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams )
71942           && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers )
71943           && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize )
71944           && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize )
71945           && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize )
71946           && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride )
71947           && ( transformFeedbackQueries == rhs.transformFeedbackQueries )
71948           && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles )
71949           && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect )
71950           && ( transformFeedbackDraw == rhs.transformFeedbackDraw );
71951     }
71952 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT71953     bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
71954     {
71955       return !operator==( rhs );
71956     }
71957 #endif
71958 
71959 
71960 
71961   public:
71962     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
71963     void* pNext = {};
71964     uint32_t maxTransformFeedbackStreams = {};
71965     uint32_t maxTransformFeedbackBuffers = {};
71966     VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {};
71967     uint32_t maxTransformFeedbackStreamDataSize = {};
71968     uint32_t maxTransformFeedbackBufferDataSize = {};
71969     uint32_t maxTransformFeedbackBufferDataStride = {};
71970     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {};
71971     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {};
71972     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {};
71973     VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {};
71974 
71975   };
71976   static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" );
71977   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
71978 
71979   template <>
71980   struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT>
71981   {
71982     using Type = PhysicalDeviceTransformFeedbackPropertiesEXT;
71983   };
71984 
71985   struct PhysicalDeviceUniformBufferStandardLayoutFeatures
71986   {
71987     static const bool allowDuplicate = false;
71988     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
71989 
71990 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71991     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}) VULKAN_HPP_NOEXCEPT
71992     : uniformBufferStandardLayout( uniformBufferStandardLayout_ )
71993     {}
71994 
71995     VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
71996 
PhysicalDeviceUniformBufferStandardLayoutFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures71997     PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
71998     {
71999       *this = rhs;
72000     }
72001 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72002 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72003     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72004     {
72005       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs );
72006       return *this;
72007     }
72008 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72009     PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72010     {
72011       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) );
72012       return *this;
72013     }
72014 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72015     PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72016     {
72017       pNext = pNext_;
72018       return *this;
72019     }
72020 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72021     PhysicalDeviceUniformBufferStandardLayoutFeatures & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
72022     {
72023       uniformBufferStandardLayout = uniformBufferStandardLayout_;
72024       return *this;
72025     }
72026 
72027 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72028     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT
72029     {
72030       return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
72031     }
72032 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72033     operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
72034     {
72035       return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>( this );
72036     }
72037 
72038 
72039 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72040     auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const& ) const = default;
72041 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72042     bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72043     {
72044       return ( sType == rhs.sType )
72045           && ( pNext == rhs.pNext )
72046           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
72047     }
72048 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures72049     bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72050     {
72051       return !operator==( rhs );
72052     }
72053 #endif
72054 
72055 
72056 
72057   public:
72058     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
72059     void* pNext = {};
72060     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
72061 
72062   };
72063   static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeatures ), "struct and wrapper have different size!" );
72064   static_assert( std::is_standard_layout<PhysicalDeviceUniformBufferStandardLayoutFeatures>::value, "struct wrapper is not a standard layout!" );
72065 
72066   template <>
72067   struct CppType<StructureType, StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures>
72068   {
72069     using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures;
72070   };
72071   using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
72072 
72073   struct PhysicalDeviceVariablePointersFeatures
72074   {
72075     static const bool allowDuplicate = false;
72076     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures;
72077 
72078 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72079     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures(VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}) VULKAN_HPP_NOEXCEPT
72080     : variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ )
72081     {}
72082 
72083     VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72084 
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72085     PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72086     {
72087       *this = rhs;
72088     }
72089 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72090 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72091     PhysicalDeviceVariablePointersFeatures & operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72092     {
72093       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const *>( &rhs );
72094       return *this;
72095     }
72096 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72097     PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
72098     {
72099       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVariablePointersFeatures ) );
72100       return *this;
72101     }
72102 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72103     PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72104     {
72105       pNext = pNext_;
72106       return *this;
72107     }
72108 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72109     PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
72110     {
72111       variablePointersStorageBuffer = variablePointersStorageBuffer_;
72112       return *this;
72113     }
72114 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72115     PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
72116     {
72117       variablePointers = variablePointers_;
72118       return *this;
72119     }
72120 
72121 
operator VkPhysicalDeviceVariablePointersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72122     operator VkPhysicalDeviceVariablePointersFeatures const&() const VULKAN_HPP_NOEXCEPT
72123     {
72124       return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>( this );
72125     }
72126 
operator VkPhysicalDeviceVariablePointersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72127     operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
72128     {
72129       return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>( this );
72130     }
72131 
72132 
72133 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72134     auto operator<=>( PhysicalDeviceVariablePointersFeatures const& ) const = default;
72135 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72136     bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72137     {
72138       return ( sType == rhs.sType )
72139           && ( pNext == rhs.pNext )
72140           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
72141           && ( variablePointers == rhs.variablePointers );
72142     }
72143 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures72144     bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
72145     {
72146       return !operator==( rhs );
72147     }
72148 #endif
72149 
72150 
72151 
72152   public:
72153     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
72154     void* pNext = {};
72155     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
72156     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
72157 
72158   };
72159   static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" );
72160   static_assert( std::is_standard_layout<PhysicalDeviceVariablePointersFeatures>::value, "struct wrapper is not a standard layout!" );
72161 
72162   template <>
72163   struct CppType<StructureType, StructureType::ePhysicalDeviceVariablePointersFeatures>
72164   {
72165     using Type = PhysicalDeviceVariablePointersFeatures;
72166   };
72167   using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
72168   using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
72169   using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
72170 
72171   struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
72172   {
72173     static const bool allowDuplicate = false;
72174     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
72175 
72176 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72177     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {}) VULKAN_HPP_NOEXCEPT
72178     : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ), vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
72179     {}
72180 
72181     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72182 
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72183     PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72184     {
72185       *this = rhs;
72186     }
72187 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72188 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72189     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72190     {
72191       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs );
72192       return *this;
72193     }
72194 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72195     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72196     {
72197       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) );
72198       return *this;
72199     }
72200 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72201     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72202     {
72203       pNext = pNext_;
72204       return *this;
72205     }
72206 
setVertexAttributeInstanceRateDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72207     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
72208     {
72209       vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
72210       return *this;
72211     }
72212 
setVertexAttributeInstanceRateZeroDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72213     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT
72214     {
72215       vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
72216       return *this;
72217     }
72218 
72219 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72220     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
72221     {
72222       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
72223     }
72224 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72225     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
72226     {
72227       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
72228     }
72229 
72230 
72231 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72232     auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& ) const = default;
72233 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72234     bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72235     {
72236       return ( sType == rhs.sType )
72237           && ( pNext == rhs.pNext )
72238           && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor )
72239           && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
72240     }
72241 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT72242     bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72243     {
72244       return !operator==( rhs );
72245     }
72246 #endif
72247 
72248 
72249 
72250   public:
72251     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
72252     void* pNext = {};
72253     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {};
72254     VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {};
72255 
72256   };
72257   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" );
72258   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
72259 
72260   template <>
72261   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT>
72262   {
72263     using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
72264   };
72265 
72266   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
72267   {
72268     static const bool allowDuplicate = false;
72269     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
72270 
72271 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72272     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT(uint32_t maxVertexAttribDivisor_ = {}) VULKAN_HPP_NOEXCEPT
72273     : maxVertexAttribDivisor( maxVertexAttribDivisor_ )
72274     {}
72275 
72276     VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72277 
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72278     PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72279     {
72280       *this = rhs;
72281     }
72282 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72283 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72284     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72285     {
72286       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs );
72287       return *this;
72288     }
72289 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72290     PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
72291     {
72292       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) );
72293       return *this;
72294     }
72295 
72296 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72297     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT
72298     {
72299       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
72300     }
72301 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72302     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
72303     {
72304       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
72305     }
72306 
72307 
72308 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72309     auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& ) const = default;
72310 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72311     bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72312     {
72313       return ( sType == rhs.sType )
72314           && ( pNext == rhs.pNext )
72315           && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
72316     }
72317 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT72318     bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
72319     {
72320       return !operator==( rhs );
72321     }
72322 #endif
72323 
72324 
72325 
72326   public:
72327     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
72328     void* pNext = {};
72329     uint32_t maxVertexAttribDivisor = {};
72330 
72331   };
72332   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" );
72333   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
72334 
72335   template <>
72336   struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT>
72337   {
72338     using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
72339   };
72340 
72341   struct PhysicalDeviceVulkan11Features
72342   {
72343     static const bool allowDuplicate = false;
72344     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features;
72345 
72346 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72347     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}, VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}) VULKAN_HPP_NOEXCEPT
72348     : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ ), multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ ), variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ ), protectedMemory( protectedMemory_ ), samplerYcbcrConversion( samplerYcbcrConversion_ ), shaderDrawParameters( shaderDrawParameters_ )
72349     {}
72350 
72351     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72352 
PhysicalDeviceVulkan11FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72353     PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
72354     {
72355       *this = rhs;
72356     }
72357 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72358 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72359     PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
72360     {
72361       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const *>( &rhs );
72362       return *this;
72363     }
72364 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72365     PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
72366     {
72367       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan11Features ) );
72368       return *this;
72369     }
72370 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72371     PhysicalDeviceVulkan11Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72372     {
72373       pNext = pNext_;
72374       return *this;
72375     }
72376 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72377     PhysicalDeviceVulkan11Features & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
72378     {
72379       storageBuffer16BitAccess = storageBuffer16BitAccess_;
72380       return *this;
72381     }
72382 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72383     PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
72384     {
72385       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
72386       return *this;
72387     }
72388 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72389     PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
72390     {
72391       storagePushConstant16 = storagePushConstant16_;
72392       return *this;
72393     }
72394 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72395     PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
72396     {
72397       storageInputOutput16 = storageInputOutput16_;
72398       return *this;
72399     }
72400 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72401     PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
72402     {
72403       multiview = multiview_;
72404       return *this;
72405     }
72406 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72407     PhysicalDeviceVulkan11Features & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
72408     {
72409       multiviewGeometryShader = multiviewGeometryShader_;
72410       return *this;
72411     }
72412 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72413     PhysicalDeviceVulkan11Features & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
72414     {
72415       multiviewTessellationShader = multiviewTessellationShader_;
72416       return *this;
72417     }
72418 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72419     PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
72420     {
72421       variablePointersStorageBuffer = variablePointersStorageBuffer_;
72422       return *this;
72423     }
72424 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72425     PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
72426     {
72427       variablePointers = variablePointers_;
72428       return *this;
72429     }
72430 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72431     PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
72432     {
72433       protectedMemory = protectedMemory_;
72434       return *this;
72435     }
72436 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72437     PhysicalDeviceVulkan11Features & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
72438     {
72439       samplerYcbcrConversion = samplerYcbcrConversion_;
72440       return *this;
72441     }
72442 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72443     PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
72444     {
72445       shaderDrawParameters = shaderDrawParameters_;
72446       return *this;
72447     }
72448 
72449 
operator VkPhysicalDeviceVulkan11Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72450     operator VkPhysicalDeviceVulkan11Features const&() const VULKAN_HPP_NOEXCEPT
72451     {
72452       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>( this );
72453     }
72454 
operator VkPhysicalDeviceVulkan11Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72455     operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
72456     {
72457       return *reinterpret_cast<VkPhysicalDeviceVulkan11Features*>( this );
72458     }
72459 
72460 
72461 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72462     auto operator<=>( PhysicalDeviceVulkan11Features const& ) const = default;
72463 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72464     bool operator==( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
72465     {
72466       return ( sType == rhs.sType )
72467           && ( pNext == rhs.pNext )
72468           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
72469           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
72470           && ( storagePushConstant16 == rhs.storagePushConstant16 )
72471           && ( storageInputOutput16 == rhs.storageInputOutput16 )
72472           && ( multiview == rhs.multiview )
72473           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
72474           && ( multiviewTessellationShader == rhs.multiviewTessellationShader )
72475           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
72476           && ( variablePointers == rhs.variablePointers )
72477           && ( protectedMemory == rhs.protectedMemory )
72478           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion )
72479           && ( shaderDrawParameters == rhs.shaderDrawParameters );
72480     }
72481 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features72482     bool operator!=( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT
72483     {
72484       return !operator==( rhs );
72485     }
72486 #endif
72487 
72488 
72489 
72490   public:
72491     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features;
72492     void* pNext = {};
72493     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
72494     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
72495     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
72496     VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
72497     VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
72498     VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
72499     VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
72500     VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
72501     VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
72502     VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
72503     VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
72504     VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
72505 
72506   };
72507   static_assert( sizeof( PhysicalDeviceVulkan11Features ) == sizeof( VkPhysicalDeviceVulkan11Features ), "struct and wrapper have different size!" );
72508   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Features>::value, "struct wrapper is not a standard layout!" );
72509 
72510   template <>
72511   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Features>
72512   {
72513     using Type = PhysicalDeviceVulkan11Features;
72514   };
72515 
72516   struct PhysicalDeviceVulkan11Properties
72517   {
72518     static const bool allowDuplicate = false;
72519     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties;
72520 
72521 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72522     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties(std::array<uint8_t,VK_UUID_SIZE> const& deviceUUID_ = {}, std::array<uint8_t,VK_UUID_SIZE> const& driverUUID_ = {}, std::array<uint8_t,VK_LUID_SIZE> const& deviceLUID_ = {}, uint32_t deviceNodeMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}, uint32_t subgroupSize_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ = {}, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ = {}, VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes, uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}, VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}, uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}) VULKAN_HPP_NOEXCEPT
72523     : deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ ), subgroupSize( subgroupSize_ ), subgroupSupportedStages( subgroupSupportedStages_ ), subgroupSupportedOperations( subgroupSupportedOperations_ ), subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ ), pointClippingBehavior( pointClippingBehavior_ ), maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ), protectedNoFault( protectedNoFault_ ), maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ )
72524     {}
72525 
72526     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72527 
PhysicalDeviceVulkan11PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72528     PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72529     {
72530       *this = rhs;
72531     }
72532 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72533 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72534     PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72535     {
72536       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const *>( &rhs );
72537       return *this;
72538     }
72539 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72540     PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
72541     {
72542       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan11Properties ) );
72543       return *this;
72544     }
72545 
72546 
operator VkPhysicalDeviceVulkan11Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72547     operator VkPhysicalDeviceVulkan11Properties const&() const VULKAN_HPP_NOEXCEPT
72548     {
72549       return *reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>( this );
72550     }
72551 
operator VkPhysicalDeviceVulkan11Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72552     operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
72553     {
72554       return *reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>( this );
72555     }
72556 
72557 
72558 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72559     auto operator<=>( PhysicalDeviceVulkan11Properties const& ) const = default;
72560 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72561     bool operator==( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72562     {
72563       return ( sType == rhs.sType )
72564           && ( pNext == rhs.pNext )
72565           && ( deviceUUID == rhs.deviceUUID )
72566           && ( driverUUID == rhs.driverUUID )
72567           && ( deviceLUID == rhs.deviceLUID )
72568           && ( deviceNodeMask == rhs.deviceNodeMask )
72569           && ( deviceLUIDValid == rhs.deviceLUIDValid )
72570           && ( subgroupSize == rhs.subgroupSize )
72571           && ( subgroupSupportedStages == rhs.subgroupSupportedStages )
72572           && ( subgroupSupportedOperations == rhs.subgroupSupportedOperations )
72573           && ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages )
72574           && ( pointClippingBehavior == rhs.pointClippingBehavior )
72575           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
72576           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex )
72577           && ( protectedNoFault == rhs.protectedNoFault )
72578           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
72579           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
72580     }
72581 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties72582     bool operator!=( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
72583     {
72584       return !operator==( rhs );
72585     }
72586 #endif
72587 
72588 
72589 
72590   public:
72591     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties;
72592     void* pNext = {};
72593     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
72594     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
72595     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
72596     uint32_t deviceNodeMask = {};
72597     VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
72598     uint32_t subgroupSize = {};
72599     VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {};
72600     VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {};
72601     VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {};
72602     VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
72603     uint32_t maxMultiviewViewCount = {};
72604     uint32_t maxMultiviewInstanceIndex = {};
72605     VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
72606     uint32_t maxPerSetDescriptors = {};
72607     VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
72608 
72609   };
72610   static_assert( sizeof( PhysicalDeviceVulkan11Properties ) == sizeof( VkPhysicalDeviceVulkan11Properties ), "struct and wrapper have different size!" );
72611   static_assert( std::is_standard_layout<PhysicalDeviceVulkan11Properties>::value, "struct wrapper is not a standard layout!" );
72612 
72613   template <>
72614   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Properties>
72615   {
72616     using Type = PhysicalDeviceVulkan11Properties;
72617   };
72618 
72619   struct PhysicalDeviceVulkan12Features
72620   {
72621     static const bool allowDuplicate = false;
72622     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features;
72623 
72624 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72625     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features(VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ = {}, VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}, VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {}) VULKAN_HPP_NOEXCEPT
72626     : samplerMirrorClampToEdge( samplerMirrorClampToEdge_ ), drawIndirectCount( drawIndirectCount_ ), storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ ), shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ), shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ ), descriptorIndexing( descriptorIndexing_ ), shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ), shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ), shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ), shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ), shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ), shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ), shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ), shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ), shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ), shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ), descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ), descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ), descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ), descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ), descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ), descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ), descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ), descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ), descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ), runtimeDescriptorArray( runtimeDescriptorArray_ ), samplerFilterMinmax( samplerFilterMinmax_ ), scalarBlockLayout( scalarBlockLayout_ ), imagelessFramebuffer( imagelessFramebuffer_ ), uniformBufferStandardLayout( uniformBufferStandardLayout_ ), shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ), separateDepthStencilLayouts( separateDepthStencilLayouts_ ), hostQueryReset( hostQueryReset_ ), timelineSemaphore( timelineSemaphore_ ), bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ), vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ), shaderOutputViewportIndex( shaderOutputViewportIndex_ ), shaderOutputLayer( shaderOutputLayer_ ), subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ )
72627     {}
72628 
72629     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
72630 
PhysicalDeviceVulkan12FeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72631     PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
72632     {
72633       *this = rhs;
72634     }
72635 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
72636 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72637     PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
72638     {
72639       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const *>( &rhs );
72640       return *this;
72641     }
72642 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72643     PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
72644     {
72645       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan12Features ) );
72646       return *this;
72647     }
72648 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72649     PhysicalDeviceVulkan12Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
72650     {
72651       pNext = pNext_;
72652       return *this;
72653     }
72654 
setSamplerMirrorClampToEdgeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72655     PhysicalDeviceVulkan12Features & setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
72656     {
72657       samplerMirrorClampToEdge = samplerMirrorClampToEdge_;
72658       return *this;
72659     }
72660 
setDrawIndirectCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72661     PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT
72662     {
72663       drawIndirectCount = drawIndirectCount_;
72664       return *this;
72665     }
72666 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72667     PhysicalDeviceVulkan12Features & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
72668     {
72669       storageBuffer8BitAccess = storageBuffer8BitAccess_;
72670       return *this;
72671     }
72672 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72673     PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
72674     {
72675       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
72676       return *this;
72677     }
72678 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72679     PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
72680     {
72681       storagePushConstant8 = storagePushConstant8_;
72682       return *this;
72683     }
72684 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72685     PhysicalDeviceVulkan12Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
72686     {
72687       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
72688       return *this;
72689     }
72690 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72691     PhysicalDeviceVulkan12Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
72692     {
72693       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
72694       return *this;
72695     }
72696 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72697     PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
72698     {
72699       shaderFloat16 = shaderFloat16_;
72700       return *this;
72701     }
72702 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72703     PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
72704     {
72705       shaderInt8 = shaderInt8_;
72706       return *this;
72707     }
72708 
setDescriptorIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72709     PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT
72710     {
72711       descriptorIndexing = descriptorIndexing_;
72712       return *this;
72713     }
72714 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72715     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
72716     {
72717       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
72718       return *this;
72719     }
72720 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72721     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
72722     {
72723       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
72724       return *this;
72725     }
72726 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72727     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
72728     {
72729       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
72730       return *this;
72731     }
72732 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72733     PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72734     {
72735       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
72736       return *this;
72737     }
72738 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72739     PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72740     {
72741       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
72742       return *this;
72743     }
72744 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72745     PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72746     {
72747       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
72748       return *this;
72749     }
72750 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72751     PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72752     {
72753       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
72754       return *this;
72755     }
72756 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72757     PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72758     {
72759       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
72760       return *this;
72761     }
72762 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72763     PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72764     {
72765       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
72766       return *this;
72767     }
72768 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72769     PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
72770     {
72771       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
72772       return *this;
72773     }
72774 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72775     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72776     {
72777       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
72778       return *this;
72779     }
72780 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72781     PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72782     {
72783       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
72784       return *this;
72785     }
72786 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72787     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72788     {
72789       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
72790       return *this;
72791     }
72792 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72793     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72794     {
72795       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
72796       return *this;
72797     }
72798 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72799     PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72800     {
72801       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
72802       return *this;
72803     }
72804 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72805     PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
72806     {
72807       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
72808       return *this;
72809     }
72810 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72811     PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
72812     {
72813       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
72814       return *this;
72815     }
72816 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72817     PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
72818     {
72819       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
72820       return *this;
72821     }
72822 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72823     PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
72824     {
72825       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
72826       return *this;
72827     }
72828 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72829     PhysicalDeviceVulkan12Features & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
72830     {
72831       runtimeDescriptorArray = runtimeDescriptorArray_;
72832       return *this;
72833     }
72834 
setSamplerFilterMinmaxVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72835     PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT
72836     {
72837       samplerFilterMinmax = samplerFilterMinmax_;
72838       return *this;
72839     }
72840 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72841     PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
72842     {
72843       scalarBlockLayout = scalarBlockLayout_;
72844       return *this;
72845     }
72846 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72847     PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
72848     {
72849       imagelessFramebuffer = imagelessFramebuffer_;
72850       return *this;
72851     }
72852 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72853     PhysicalDeviceVulkan12Features & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
72854     {
72855       uniformBufferStandardLayout = uniformBufferStandardLayout_;
72856       return *this;
72857     }
72858 
setShaderSubgroupExtendedTypesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72859     PhysicalDeviceVulkan12Features & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
72860     {
72861       shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
72862       return *this;
72863     }
72864 
setSeparateDepthStencilLayoutsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72865     PhysicalDeviceVulkan12Features & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
72866     {
72867       separateDepthStencilLayouts = separateDepthStencilLayouts_;
72868       return *this;
72869     }
72870 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72871     PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
72872     {
72873       hostQueryReset = hostQueryReset_;
72874       return *this;
72875     }
72876 
setTimelineSemaphoreVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72877     PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
72878     {
72879       timelineSemaphore = timelineSemaphore_;
72880       return *this;
72881     }
72882 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72883     PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
72884     {
72885       bufferDeviceAddress = bufferDeviceAddress_;
72886       return *this;
72887     }
72888 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72889     PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
72890     {
72891       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
72892       return *this;
72893     }
72894 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72895     PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
72896     {
72897       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
72898       return *this;
72899     }
72900 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72901     PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
72902     {
72903       vulkanMemoryModel = vulkanMemoryModel_;
72904       return *this;
72905     }
72906 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72907     PhysicalDeviceVulkan12Features & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
72908     {
72909       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
72910       return *this;
72911     }
72912 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72913     PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
72914     {
72915       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
72916       return *this;
72917     }
72918 
setShaderOutputViewportIndexVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72919     PhysicalDeviceVulkan12Features & setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
72920     {
72921       shaderOutputViewportIndex = shaderOutputViewportIndex_;
72922       return *this;
72923     }
72924 
setShaderOutputLayerVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72925     PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT
72926     {
72927       shaderOutputLayer = shaderOutputLayer_;
72928       return *this;
72929     }
72930 
setSubgroupBroadcastDynamicIdVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72931     PhysicalDeviceVulkan12Features & setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
72932     {
72933       subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
72934       return *this;
72935     }
72936 
72937 
operator VkPhysicalDeviceVulkan12Features const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72938     operator VkPhysicalDeviceVulkan12Features const&() const VULKAN_HPP_NOEXCEPT
72939     {
72940       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>( this );
72941     }
72942 
operator VkPhysicalDeviceVulkan12Features&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72943     operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
72944     {
72945       return *reinterpret_cast<VkPhysicalDeviceVulkan12Features*>( this );
72946     }
72947 
72948 
72949 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
72950     auto operator<=>( PhysicalDeviceVulkan12Features const& ) const = default;
72951 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features72952     bool operator==( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
72953     {
72954       return ( sType == rhs.sType )
72955           && ( pNext == rhs.pNext )
72956           && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge )
72957           && ( drawIndirectCount == rhs.drawIndirectCount )
72958           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
72959           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
72960           && ( storagePushConstant8 == rhs.storagePushConstant8 )
72961           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
72962           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics )
72963           && ( shaderFloat16 == rhs.shaderFloat16 )
72964           && ( shaderInt8 == rhs.shaderInt8 )
72965           && ( descriptorIndexing == rhs.descriptorIndexing )
72966           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
72967           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
72968           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
72969           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
72970           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
72971           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
72972           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
72973           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
72974           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
72975           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
72976           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
72977           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
72978           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
72979           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
72980           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
72981           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
72982           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
72983           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
72984           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
72985           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray )
72986           && ( samplerFilterMinmax == rhs.samplerFilterMinmax )
72987           && ( scalarBlockLayout == rhs.scalarBlockLayout )
72988           && ( imagelessFramebuffer == rhs.imagelessFramebuffer )
72989           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout )
72990           && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes )
72991           && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts )
72992           && ( hostQueryReset == rhs.hostQueryReset )
72993           && ( timelineSemaphore == rhs.timelineSemaphore )
72994           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
72995           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
72996           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice )
72997           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
72998           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
72999           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains )
73000           && ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex )
73001           && ( shaderOutputLayer == rhs.shaderOutputLayer )
73002           && ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId );
73003     }
73004 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features73005     bool operator!=( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT
73006     {
73007       return !operator==( rhs );
73008     }
73009 #endif
73010 
73011 
73012 
73013   public:
73014     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features;
73015     void* pNext = {};
73016     VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {};
73017     VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {};
73018     VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
73019     VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
73020     VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
73021     VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
73022     VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
73023     VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
73024     VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
73025     VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {};
73026     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
73027     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
73028     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
73029     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
73030     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
73031     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
73032     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
73033     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
73034     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
73035     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
73036     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
73037     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
73038     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
73039     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
73040     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
73041     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
73042     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
73043     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
73044     VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
73045     VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
73046     VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {};
73047     VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
73048     VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
73049     VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
73050     VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
73051     VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
73052     VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
73053     VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
73054     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
73055     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
73056     VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
73057     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
73058     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
73059     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
73060     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {};
73061     VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {};
73062     VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {};
73063 
73064   };
73065   static_assert( sizeof( PhysicalDeviceVulkan12Features ) == sizeof( VkPhysicalDeviceVulkan12Features ), "struct and wrapper have different size!" );
73066   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Features>::value, "struct wrapper is not a standard layout!" );
73067 
73068   template <>
73069   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Features>
73070   {
73071     using Type = PhysicalDeviceVulkan12Features;
73072   };
73073 
73074   struct PhysicalDeviceVulkan12Properties
73075   {
73076     static const bool allowDuplicate = false;
73077     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties;
73078 
73079 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73080     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties(VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, std::array<char,VK_MAX_DRIVER_NAME_SIZE> const& driverName_ = {}, std::array<char,VK_MAX_DRIVER_INFO_SIZE> const& driverInfo_ = {}, VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}, uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, uint32_t maxPerStageUpdateAfterBindResources_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}, uint64_t maxTimelineSemaphoreValueDifference_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {}) VULKAN_HPP_NOEXCEPT
73081     : driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ ), denormBehaviorIndependence( denormBehaviorIndependence_ ), roundingModeIndependence( roundingModeIndependence_ ), shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ), shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ), shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ), shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ), shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ), shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ), shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ), shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ), shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ), shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ), shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ), shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ), shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ), shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ), shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ), maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ), shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ), shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ), shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ), shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ), shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ), robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ), quadDivergentImplicitLod( quadDivergentImplicitLod_ ), maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ), maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ), maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ), maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ), maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ), maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ), maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ), maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ), maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ), maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ), maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ), maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ), maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ), supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ ), filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ), maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ), framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ )
73082     {}
73083 
73084     VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73085 
PhysicalDeviceVulkan12PropertiesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73086     PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
73087     {
73088       *this = rhs;
73089     }
73090 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73091 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73092     PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
73093     {
73094       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const *>( &rhs );
73095       return *this;
73096     }
73097 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73098     PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
73099     {
73100       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkan12Properties ) );
73101       return *this;
73102     }
73103 
73104 
operator VkPhysicalDeviceVulkan12Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73105     operator VkPhysicalDeviceVulkan12Properties const&() const VULKAN_HPP_NOEXCEPT
73106     {
73107       return *reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>( this );
73108     }
73109 
operator VkPhysicalDeviceVulkan12Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73110     operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
73111     {
73112       return *reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>( this );
73113     }
73114 
73115 
73116 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73117     auto operator<=>( PhysicalDeviceVulkan12Properties const& ) const = default;
73118 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73119     bool operator==( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
73120     {
73121       return ( sType == rhs.sType )
73122           && ( pNext == rhs.pNext )
73123           && ( driverID == rhs.driverID )
73124           && ( driverName == rhs.driverName )
73125           && ( driverInfo == rhs.driverInfo )
73126           && ( conformanceVersion == rhs.conformanceVersion )
73127           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
73128           && ( roundingModeIndependence == rhs.roundingModeIndependence )
73129           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
73130           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
73131           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
73132           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
73133           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
73134           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
73135           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
73136           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
73137           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
73138           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
73139           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
73140           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
73141           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
73142           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
73143           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 )
73144           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
73145           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
73146           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
73147           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
73148           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
73149           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
73150           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
73151           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
73152           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
73153           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
73154           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
73155           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
73156           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
73157           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
73158           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
73159           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
73160           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
73161           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
73162           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
73163           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
73164           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
73165           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
73166           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments )
73167           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
73168           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
73169           && ( independentResolveNone == rhs.independentResolveNone )
73170           && ( independentResolve == rhs.independentResolve )
73171           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
73172           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping )
73173           && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference )
73174           && ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts );
73175     }
73176 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties73177     bool operator!=( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT
73178     {
73179       return !operator==( rhs );
73180     }
73181 #endif
73182 
73183 
73184 
73185   public:
73186     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties;
73187     void* pNext = {};
73188     VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
73189     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
73190     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
73191     VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
73192     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
73193     VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
73194     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
73195     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
73196     VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
73197     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
73198     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
73199     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
73200     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
73201     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
73202     VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
73203     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
73204     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
73205     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
73206     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
73207     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
73208     VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
73209     uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
73210     VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
73211     VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
73212     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
73213     VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
73214     VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
73215     VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
73216     VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
73217     uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
73218     uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
73219     uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
73220     uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
73221     uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
73222     uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
73223     uint32_t maxPerStageUpdateAfterBindResources = {};
73224     uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
73225     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
73226     uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
73227     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
73228     uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
73229     uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
73230     uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
73231     uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
73232     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
73233     VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
73234     VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
73235     VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
73236     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
73237     VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
73238     uint64_t maxTimelineSemaphoreValueDifference = {};
73239     VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {};
73240 
73241   };
73242   static_assert( sizeof( PhysicalDeviceVulkan12Properties ) == sizeof( VkPhysicalDeviceVulkan12Properties ), "struct and wrapper have different size!" );
73243   static_assert( std::is_standard_layout<PhysicalDeviceVulkan12Properties>::value, "struct wrapper is not a standard layout!" );
73244 
73245   template <>
73246   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Properties>
73247   {
73248     using Type = PhysicalDeviceVulkan12Properties;
73249   };
73250 
73251   struct PhysicalDeviceVulkanMemoryModelFeatures
73252   {
73253     static const bool allowDuplicate = false;
73254     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
73255 
73256 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73257     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures(VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}) VULKAN_HPP_NOEXCEPT
73258     : vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
73259     {}
73260 
73261     VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73262 
PhysicalDeviceVulkanMemoryModelFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73263     PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73264     {
73265       *this = rhs;
73266     }
73267 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73268 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73269     PhysicalDeviceVulkanMemoryModelFeatures & operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73270     {
73271       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs );
73272       return *this;
73273     }
73274 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73275     PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
73276     {
73277       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) );
73278       return *this;
73279     }
73280 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73281     PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
73282     {
73283       pNext = pNext_;
73284       return *this;
73285     }
73286 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73287     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
73288     {
73289       vulkanMemoryModel = vulkanMemoryModel_;
73290       return *this;
73291     }
73292 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73293     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
73294     {
73295       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
73296       return *this;
73297     }
73298 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73299     PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
73300     {
73301       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
73302       return *this;
73303     }
73304 
73305 
operator VkPhysicalDeviceVulkanMemoryModelFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73306     operator VkPhysicalDeviceVulkanMemoryModelFeatures const&() const VULKAN_HPP_NOEXCEPT
73307     {
73308       return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
73309     }
73310 
operator VkPhysicalDeviceVulkanMemoryModelFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73311     operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
73312     {
73313       return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>( this );
73314     }
73315 
73316 
73317 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73318     auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const& ) const = default;
73319 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73320     bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
73321     {
73322       return ( sType == rhs.sType )
73323           && ( pNext == rhs.pNext )
73324           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
73325           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
73326           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
73327     }
73328 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures73329     bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT
73330     {
73331       return !operator==( rhs );
73332     }
73333 #endif
73334 
73335 
73336 
73337   public:
73338     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
73339     void* pNext = {};
73340     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
73341     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
73342     VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
73343 
73344   };
73345   static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeatures ), "struct and wrapper have different size!" );
73346   static_assert( std::is_standard_layout<PhysicalDeviceVulkanMemoryModelFeatures>::value, "struct wrapper is not a standard layout!" );
73347 
73348   template <>
73349   struct CppType<StructureType, StructureType::ePhysicalDeviceVulkanMemoryModelFeatures>
73350   {
73351     using Type = PhysicalDeviceVulkanMemoryModelFeatures;
73352   };
73353   using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
73354 
73355   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
73356   {
73357     static const bool allowDuplicate = false;
73358     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
73359 
73360 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73361     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {}) VULKAN_HPP_NOEXCEPT
73362     : ycbcrImageArrays( ycbcrImageArrays_ )
73363     {}
73364 
73365     VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73366 
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73367     PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73368     {
73369       *this = rhs;
73370     }
73371 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73372 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73373     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73374     {
73375       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs );
73376       return *this;
73377     }
73378 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73379     PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73380     {
73381       memcpy( static_cast<void *>( this ), &rhs, sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) );
73382       return *this;
73383     }
73384 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73385     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
73386     {
73387       pNext = pNext_;
73388       return *this;
73389     }
73390 
setYcbcrImageArraysVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73391     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
73392     {
73393       ycbcrImageArrays = ycbcrImageArrays_;
73394       return *this;
73395     }
73396 
73397 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73398     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
73399     {
73400       return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
73401     }
73402 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73403     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
73404     {
73405       return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
73406     }
73407 
73408 
73409 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73410     auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& ) const = default;
73411 #else
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73412     bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73413     {
73414       return ( sType == rhs.sType )
73415           && ( pNext == rhs.pNext )
73416           && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
73417     }
73418 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT73419     bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73420     {
73421       return !operator==( rhs );
73422     }
73423 #endif
73424 
73425 
73426 
73427   public:
73428     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
73429     void* pNext = {};
73430     VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {};
73431 
73432   };
73433   static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" );
73434   static_assert( std::is_standard_layout<PhysicalDeviceYcbcrImageArraysFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
73435 
73436   template <>
73437   struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT>
73438   {
73439     using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT;
73440   };
73441 
73442   struct PipelineColorBlendAdvancedStateCreateInfoEXT
73443   {
73444     static const bool allowDuplicate = false;
73445     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
73446 
73447 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73448     VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated) VULKAN_HPP_NOEXCEPT
73449     : srcPremultiplied( srcPremultiplied_ ), dstPremultiplied( dstPremultiplied_ ), blendOverlap( blendOverlap_ )
73450     {}
73451 
73452     VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73453 
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73454     PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73455     {
73456       *this = rhs;
73457     }
73458 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73459 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73460     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73461     {
73462       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs );
73463       return *this;
73464     }
73465 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73466     PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73467     {
73468       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) );
73469       return *this;
73470     }
73471 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73472     PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73473     {
73474       pNext = pNext_;
73475       return *this;
73476     }
73477 
setSrcPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73478     PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
73479     {
73480       srcPremultiplied = srcPremultiplied_;
73481       return *this;
73482     }
73483 
setDstPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73484     PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
73485     {
73486       dstPremultiplied = dstPremultiplied_;
73487       return *this;
73488     }
73489 
setBlendOverlapVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73490     PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
73491     {
73492       blendOverlap = blendOverlap_;
73493       return *this;
73494     }
73495 
73496 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73497     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
73498     {
73499       return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
73500     }
73501 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73502     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
73503     {
73504       return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
73505     }
73506 
73507 
73508 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73509     auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const& ) const = default;
73510 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73511     bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73512     {
73513       return ( sType == rhs.sType )
73514           && ( pNext == rhs.pNext )
73515           && ( srcPremultiplied == rhs.srcPremultiplied )
73516           && ( dstPremultiplied == rhs.dstPremultiplied )
73517           && ( blendOverlap == rhs.blendOverlap );
73518     }
73519 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT73520     bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
73521     {
73522       return !operator==( rhs );
73523     }
73524 #endif
73525 
73526 
73527 
73528   public:
73529     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
73530     const void* pNext = {};
73531     VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
73532     VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
73533     VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
73534 
73535   };
73536   static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" );
73537   static_assert( std::is_standard_layout<PipelineColorBlendAdvancedStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
73538 
73539   template <>
73540   struct CppType<StructureType, StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT>
73541   {
73542     using Type = PipelineColorBlendAdvancedStateCreateInfoEXT;
73543   };
73544 
73545   struct PipelineCompilerControlCreateInfoAMD
73546   {
73547     static const bool allowDuplicate = false;
73548     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD;
73549 
73550 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73551     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD(VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {}) VULKAN_HPP_NOEXCEPT
73552     : compilerControlFlags( compilerControlFlags_ )
73553     {}
73554 
73555     VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73556 
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73557     PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73558     {
73559       *this = rhs;
73560     }
73561 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73562 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73563     PipelineCompilerControlCreateInfoAMD & operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73564     {
73565       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const *>( &rhs );
73566       return *this;
73567     }
73568 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73569     PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
73570     {
73571       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCompilerControlCreateInfoAMD ) );
73572       return *this;
73573     }
73574 
setPNextVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73575     PipelineCompilerControlCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73576     {
73577       pNext = pNext_;
73578       return *this;
73579     }
73580 
setCompilerControlFlagsVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73581     PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
73582     {
73583       compilerControlFlags = compilerControlFlags_;
73584       return *this;
73585     }
73586 
73587 
operator VkPipelineCompilerControlCreateInfoAMD const&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73588     operator VkPipelineCompilerControlCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
73589     {
73590       return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>( this );
73591     }
73592 
operator VkPipelineCompilerControlCreateInfoAMD&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73593     operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
73594     {
73595       return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>( this );
73596     }
73597 
73598 
73599 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73600     auto operator<=>( PipelineCompilerControlCreateInfoAMD const& ) const = default;
73601 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73602     bool operator==( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
73603     {
73604       return ( sType == rhs.sType )
73605           && ( pNext == rhs.pNext )
73606           && ( compilerControlFlags == rhs.compilerControlFlags );
73607     }
73608 
operator !=VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD73609     bool operator!=( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
73610     {
73611       return !operator==( rhs );
73612     }
73613 #endif
73614 
73615 
73616 
73617   public:
73618     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD;
73619     const void* pNext = {};
73620     VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {};
73621 
73622   };
73623   static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "struct and wrapper have different size!" );
73624   static_assert( std::is_standard_layout<PipelineCompilerControlCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
73625 
73626   template <>
73627   struct CppType<StructureType, StructureType::ePipelineCompilerControlCreateInfoAMD>
73628   {
73629     using Type = PipelineCompilerControlCreateInfoAMD;
73630   };
73631 
73632   struct PipelineCoverageModulationStateCreateInfoNV
73633   {
73634     static const bool allowDuplicate = false;
73635     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
73636 
73637 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73638     VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ = {}, uint32_t coverageModulationTableCount_ = {}, const float* pCoverageModulationTable_ = {}) VULKAN_HPP_NOEXCEPT
73639     : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( coverageModulationTableCount_ ), pCoverageModulationTable( pCoverageModulationTable_ )
73640     {}
73641 
73642     VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73643 
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73644     PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73645     {
73646       *this = rhs;
73647     }
73648 
73649 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73650     PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ )
73651     : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( static_cast<uint32_t>( coverageModulationTable_.size() ) ), pCoverageModulationTable( coverageModulationTable_.data() )
73652     {}
73653 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73654 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73655 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73656     PipelineCoverageModulationStateCreateInfoNV & operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73657     {
73658       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const *>( &rhs );
73659       return *this;
73660     }
73661 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73662     PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73663     {
73664       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCoverageModulationStateCreateInfoNV ) );
73665       return *this;
73666     }
73667 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73668     PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73669     {
73670       pNext = pNext_;
73671       return *this;
73672     }
73673 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73674     PipelineCoverageModulationStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
73675     {
73676       flags = flags_;
73677       return *this;
73678     }
73679 
setCoverageModulationModeVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73680     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
73681     {
73682       coverageModulationMode = coverageModulationMode_;
73683       return *this;
73684     }
73685 
setCoverageModulationTableEnableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73686     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
73687     {
73688       coverageModulationTableEnable = coverageModulationTableEnable_;
73689       return *this;
73690     }
73691 
setCoverageModulationTableCountVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73692     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
73693     {
73694       coverageModulationTableCount = coverageModulationTableCount_;
73695       return *this;
73696     }
73697 
setPCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73698     PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
73699     {
73700       pCoverageModulationTable = pCoverageModulationTable_;
73701       return *this;
73702     }
73703 
73704 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73705     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
73706     {
73707       coverageModulationTableCount = static_cast<uint32_t>( coverageModulationTable_.size() );
73708       pCoverageModulationTable = coverageModulationTable_.data();
73709       return *this;
73710     }
73711 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
73712 
73713 
operator VkPipelineCoverageModulationStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73714     operator VkPipelineCoverageModulationStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
73715     {
73716       return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>( this );
73717     }
73718 
operator VkPipelineCoverageModulationStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73719     operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
73720     {
73721       return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>( this );
73722     }
73723 
73724 
73725 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73726     auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const& ) const = default;
73727 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73728     bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73729     {
73730       return ( sType == rhs.sType )
73731           && ( pNext == rhs.pNext )
73732           && ( flags == rhs.flags )
73733           && ( coverageModulationMode == rhs.coverageModulationMode )
73734           && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable )
73735           && ( coverageModulationTableCount == rhs.coverageModulationTableCount )
73736           && ( pCoverageModulationTable == rhs.pCoverageModulationTable );
73737     }
73738 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV73739     bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73740     {
73741       return !operator==( rhs );
73742     }
73743 #endif
73744 
73745 
73746 
73747   public:
73748     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
73749     const void* pNext = {};
73750     VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {};
73751     VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone;
73752     VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {};
73753     uint32_t coverageModulationTableCount = {};
73754     const float* pCoverageModulationTable = {};
73755 
73756   };
73757   static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" );
73758   static_assert( std::is_standard_layout<PipelineCoverageModulationStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
73759 
73760   template <>
73761   struct CppType<StructureType, StructureType::ePipelineCoverageModulationStateCreateInfoNV>
73762   {
73763     using Type = PipelineCoverageModulationStateCreateInfoNV;
73764   };
73765 
73766   struct PipelineCoverageReductionStateCreateInfoNV
73767   {
73768     static const bool allowDuplicate = false;
73769     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
73770 
73771 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73772     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge) VULKAN_HPP_NOEXCEPT
73773     : flags( flags_ ), coverageReductionMode( coverageReductionMode_ )
73774     {}
73775 
73776     VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73777 
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73778     PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73779     {
73780       *this = rhs;
73781     }
73782 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73783 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73784     PipelineCoverageReductionStateCreateInfoNV & operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73785     {
73786       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const *>( &rhs );
73787       return *this;
73788     }
73789 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73790     PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73791     {
73792       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCoverageReductionStateCreateInfoNV ) );
73793       return *this;
73794     }
73795 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73796     PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73797     {
73798       pNext = pNext_;
73799       return *this;
73800     }
73801 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73802     PipelineCoverageReductionStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
73803     {
73804       flags = flags_;
73805       return *this;
73806     }
73807 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73808     PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
73809     {
73810       coverageReductionMode = coverageReductionMode_;
73811       return *this;
73812     }
73813 
73814 
operator VkPipelineCoverageReductionStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73815     operator VkPipelineCoverageReductionStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
73816     {
73817       return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>( this );
73818     }
73819 
operator VkPipelineCoverageReductionStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73820     operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
73821     {
73822       return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>( this );
73823     }
73824 
73825 
73826 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73827     auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const& ) const = default;
73828 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73829     bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73830     {
73831       return ( sType == rhs.sType )
73832           && ( pNext == rhs.pNext )
73833           && ( flags == rhs.flags )
73834           && ( coverageReductionMode == rhs.coverageReductionMode );
73835     }
73836 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV73837     bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73838     {
73839       return !operator==( rhs );
73840     }
73841 #endif
73842 
73843 
73844 
73845   public:
73846     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
73847     const void* pNext = {};
73848     VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {};
73849     VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
73850 
73851   };
73852   static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" );
73853   static_assert( std::is_standard_layout<PipelineCoverageReductionStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
73854 
73855   template <>
73856   struct CppType<StructureType, StructureType::ePipelineCoverageReductionStateCreateInfoNV>
73857   {
73858     using Type = PipelineCoverageReductionStateCreateInfoNV;
73859   };
73860 
73861   struct PipelineCoverageToColorStateCreateInfoNV
73862   {
73863     static const bool allowDuplicate = false;
73864     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
73865 
73866 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73867     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {}, uint32_t coverageToColorLocation_ = {}) VULKAN_HPP_NOEXCEPT
73868     : flags( flags_ ), coverageToColorEnable( coverageToColorEnable_ ), coverageToColorLocation( coverageToColorLocation_ )
73869     {}
73870 
73871     VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73872 
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73873     PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73874     {
73875       *this = rhs;
73876     }
73877 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73878 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73879     PipelineCoverageToColorStateCreateInfoNV & operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73880     {
73881       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const *>( &rhs );
73882       return *this;
73883     }
73884 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73885     PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
73886     {
73887       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCoverageToColorStateCreateInfoNV ) );
73888       return *this;
73889     }
73890 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73891     PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
73892     {
73893       pNext = pNext_;
73894       return *this;
73895     }
73896 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73897     PipelineCoverageToColorStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
73898     {
73899       flags = flags_;
73900       return *this;
73901     }
73902 
setCoverageToColorEnableVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73903     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
73904     {
73905       coverageToColorEnable = coverageToColorEnable_;
73906       return *this;
73907     }
73908 
setCoverageToColorLocationVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73909     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
73910     {
73911       coverageToColorLocation = coverageToColorLocation_;
73912       return *this;
73913     }
73914 
73915 
operator VkPipelineCoverageToColorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73916     operator VkPipelineCoverageToColorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
73917     {
73918       return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>( this );
73919     }
73920 
operator VkPipelineCoverageToColorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73921     operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
73922     {
73923       return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>( this );
73924     }
73925 
73926 
73927 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
73928     auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const& ) const = default;
73929 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73930     bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73931     {
73932       return ( sType == rhs.sType )
73933           && ( pNext == rhs.pNext )
73934           && ( flags == rhs.flags )
73935           && ( coverageToColorEnable == rhs.coverageToColorEnable )
73936           && ( coverageToColorLocation == rhs.coverageToColorLocation );
73937     }
73938 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV73939     bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
73940     {
73941       return !operator==( rhs );
73942     }
73943 #endif
73944 
73945 
73946 
73947   public:
73948     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
73949     const void* pNext = {};
73950     VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {};
73951     VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {};
73952     uint32_t coverageToColorLocation = {};
73953 
73954   };
73955   static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" );
73956   static_assert( std::is_standard_layout<PipelineCoverageToColorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
73957 
73958   template <>
73959   struct CppType<StructureType, StructureType::ePipelineCoverageToColorStateCreateInfoNV>
73960   {
73961     using Type = PipelineCoverageToColorStateCreateInfoNV;
73962   };
73963 
73964   struct PipelineCreationFeedbackEXT
73965   {
73966 
73967 
73968 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73969     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags_ = {}, uint64_t duration_ = {}) VULKAN_HPP_NOEXCEPT
73970     : flags( flags_ ), duration( duration_ )
73971     {}
73972 
73973     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
73974 
PipelineCreationFeedbackEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73975     PipelineCreationFeedbackEXT( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73976     {
73977       *this = rhs;
73978     }
73979 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
73980 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73981     PipelineCreationFeedbackEXT & operator=( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73982     {
73983       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT const *>( &rhs );
73984       return *this;
73985     }
73986 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73987     PipelineCreationFeedbackEXT & operator=( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT
73988     {
73989       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCreationFeedbackEXT ) );
73990       return *this;
73991     }
73992 
73993 
operator VkPipelineCreationFeedbackEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73994     operator VkPipelineCreationFeedbackEXT const&() const VULKAN_HPP_NOEXCEPT
73995     {
73996       return *reinterpret_cast<const VkPipelineCreationFeedbackEXT*>( this );
73997     }
73998 
operator VkPipelineCreationFeedbackEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT73999     operator VkPipelineCreationFeedbackEXT &() VULKAN_HPP_NOEXCEPT
74000     {
74001       return *reinterpret_cast<VkPipelineCreationFeedbackEXT*>( this );
74002     }
74003 
74004 
74005 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74006     auto operator<=>( PipelineCreationFeedbackEXT const& ) const = default;
74007 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT74008     bool operator==( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74009     {
74010       return ( flags == rhs.flags )
74011           && ( duration == rhs.duration );
74012     }
74013 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT74014     bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74015     {
74016       return !operator==( rhs );
74017     }
74018 #endif
74019 
74020 
74021 
74022   public:
74023     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags = {};
74024     uint64_t duration = {};
74025 
74026   };
74027   static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" );
74028   static_assert( std::is_standard_layout<PipelineCreationFeedbackEXT>::value, "struct wrapper is not a standard layout!" );
74029 
74030   struct PipelineCreationFeedbackCreateInfoEXT
74031   {
74032     static const bool allowDuplicate = false;
74033     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
74034 
74035 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74036     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = {}, uint32_t pipelineStageCreationFeedbackCount_ = {}, VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = {}) VULKAN_HPP_NOEXCEPT
74037     : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ ), pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
74038     {}
74039 
74040     VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74041 
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74042     PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74043     {
74044       *this = rhs;
74045     }
74046 
74047 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74048     PipelineCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT> const & pipelineStageCreationFeedbacks_ )
74049     : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() ) ), pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() )
74050     {}
74051 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74052 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74053 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74054     PipelineCreationFeedbackCreateInfoEXT & operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74055     {
74056       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT const *>( &rhs );
74057       return *this;
74058     }
74059 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74060     PipelineCreationFeedbackCreateInfoEXT & operator=( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74061     {
74062       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineCreationFeedbackCreateInfoEXT ) );
74063       return *this;
74064     }
74065 
setPNextVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74066     PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74067     {
74068       pNext = pNext_;
74069       return *this;
74070     }
74071 
setPPipelineCreationFeedbackVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74072     PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
74073     {
74074       pPipelineCreationFeedback = pPipelineCreationFeedback_;
74075       return *this;
74076     }
74077 
setPipelineStageCreationFeedbackCountVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74078     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
74079     {
74080       pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
74081       return *this;
74082     }
74083 
setPPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74084     PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
74085     {
74086       pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
74087       return *this;
74088     }
74089 
74090 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74091     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT> const & pipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
74092     {
74093       pipelineStageCreationFeedbackCount = static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() );
74094       pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data();
74095       return *this;
74096     }
74097 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74098 
74099 
operator VkPipelineCreationFeedbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74100     operator VkPipelineCreationFeedbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74101     {
74102       return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>( this );
74103     }
74104 
operator VkPipelineCreationFeedbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74105     operator VkPipelineCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74106     {
74107       return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>( this );
74108     }
74109 
74110 
74111 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74112     auto operator<=>( PipelineCreationFeedbackCreateInfoEXT const& ) const = default;
74113 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74114     bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74115     {
74116       return ( sType == rhs.sType )
74117           && ( pNext == rhs.pNext )
74118           && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback )
74119           && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount )
74120           && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
74121     }
74122 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT74123     bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74124     {
74125       return !operator==( rhs );
74126     }
74127 #endif
74128 
74129 
74130 
74131   public:
74132     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
74133     const void* pNext = {};
74134     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback = {};
74135     uint32_t pipelineStageCreationFeedbackCount = {};
74136     VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks = {};
74137 
74138   };
74139   static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" );
74140   static_assert( std::is_standard_layout<PipelineCreationFeedbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74141 
74142   template <>
74143   struct CppType<StructureType, StructureType::ePipelineCreationFeedbackCreateInfoEXT>
74144   {
74145     using Type = PipelineCreationFeedbackCreateInfoEXT;
74146   };
74147 
74148   struct PipelineDiscardRectangleStateCreateInfoEXT
74149   {
74150     static const bool allowDuplicate = false;
74151     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
74152 
74153 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74154     VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive, uint32_t discardRectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ = {}) VULKAN_HPP_NOEXCEPT
74155     : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( discardRectangleCount_ ), pDiscardRectangles( pDiscardRectangles_ )
74156     {}
74157 
74158     VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74159 
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74160     PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74161     {
74162       *this = rhs;
74163     }
74164 
74165 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74166     PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ )
74167     : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( static_cast<uint32_t>( discardRectangles_.size() ) ), pDiscardRectangles( discardRectangles_.data() )
74168     {}
74169 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74170 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74171 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74172     PipelineDiscardRectangleStateCreateInfoEXT & operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74173     {
74174       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs );
74175       return *this;
74176     }
74177 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74178     PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74179     {
74180       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) );
74181       return *this;
74182     }
74183 
setPNextVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74184     PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74185     {
74186       pNext = pNext_;
74187       return *this;
74188     }
74189 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74190     PipelineDiscardRectangleStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74191     {
74192       flags = flags_;
74193       return *this;
74194     }
74195 
setDiscardRectangleModeVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74196     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
74197     {
74198       discardRectangleMode = discardRectangleMode_;
74199       return *this;
74200     }
74201 
setDiscardRectangleCountVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74202     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT
74203     {
74204       discardRectangleCount = discardRectangleCount_;
74205       return *this;
74206     }
74207 
setPDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74208     PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
74209     {
74210       pDiscardRectangles = pDiscardRectangles_;
74211       return *this;
74212     }
74213 
74214 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74215     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ ) VULKAN_HPP_NOEXCEPT
74216     {
74217       discardRectangleCount = static_cast<uint32_t>( discardRectangles_.size() );
74218       pDiscardRectangles = discardRectangles_.data();
74219       return *this;
74220     }
74221 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
74222 
74223 
operator VkPipelineDiscardRectangleStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74224     operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74225     {
74226       return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
74227     }
74228 
operator VkPipelineDiscardRectangleStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74229     operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74230     {
74231       return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
74232     }
74233 
74234 
74235 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74236     auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const& ) const = default;
74237 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74238     bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74239     {
74240       return ( sType == rhs.sType )
74241           && ( pNext == rhs.pNext )
74242           && ( flags == rhs.flags )
74243           && ( discardRectangleMode == rhs.discardRectangleMode )
74244           && ( discardRectangleCount == rhs.discardRectangleCount )
74245           && ( pDiscardRectangles == rhs.pDiscardRectangles );
74246     }
74247 
operator !=VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT74248     bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74249     {
74250       return !operator==( rhs );
74251     }
74252 #endif
74253 
74254 
74255 
74256   public:
74257     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
74258     const void* pNext = {};
74259     VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {};
74260     VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive;
74261     uint32_t discardRectangleCount = {};
74262     const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles = {};
74263 
74264   };
74265   static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" );
74266   static_assert( std::is_standard_layout<PipelineDiscardRectangleStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74267 
74268   template <>
74269   struct CppType<StructureType, StructureType::ePipelineDiscardRectangleStateCreateInfoEXT>
74270   {
74271     using Type = PipelineDiscardRectangleStateCreateInfoEXT;
74272   };
74273 
74274   struct PipelineFragmentShadingRateEnumStateCreateInfoNV
74275   {
74276     static const bool allowDuplicate = false;
74277     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
74278 
74279 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineFragmentShadingRateEnumStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74280     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize, VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel, std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> const& combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }) VULKAN_HPP_NOEXCEPT
74281     : shadingRateType( shadingRateType_ ), shadingRate( shadingRate_ ), combinerOps( combinerOps_ )
74282     {}
74283 
74284     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74285 
PipelineFragmentShadingRateEnumStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74286     PipelineFragmentShadingRateEnumStateCreateInfoNV( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74287     {
74288       *this = rhs;
74289     }
74290 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74291 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74292     PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74293     {
74294       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV const *>( &rhs );
74295       return *this;
74296     }
74297 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74298     PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74299     {
74300       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineFragmentShadingRateEnumStateCreateInfoNV ) );
74301       return *this;
74302     }
74303 
setPNextVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74304     PipelineFragmentShadingRateEnumStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74305     {
74306       pNext = pNext_;
74307       return *this;
74308     }
74309 
setShadingRateTypeVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74310     PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT
74311     {
74312       shadingRateType = shadingRateType_;
74313       return *this;
74314     }
74315 
setShadingRateVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74316     PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
74317     {
74318       shadingRate = shadingRate_;
74319       return *this;
74320     }
74321 
setCombinerOpsVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74322     PipelineFragmentShadingRateEnumStateCreateInfoNV & setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
74323     {
74324       combinerOps = combinerOps_;
74325       return *this;
74326     }
74327 
74328 
operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74329     operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
74330     {
74331       return *reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>( this );
74332     }
74333 
operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74334     operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
74335     {
74336       return *reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>( this );
74337     }
74338 
74339 
74340 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74341     auto operator<=>( PipelineFragmentShadingRateEnumStateCreateInfoNV const& ) const = default;
74342 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74343     bool operator==( PipelineFragmentShadingRateEnumStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74344     {
74345       return ( sType == rhs.sType )
74346           && ( pNext == rhs.pNext )
74347           && ( shadingRateType == rhs.shadingRateType )
74348           && ( shadingRate == rhs.shadingRate )
74349           && ( combinerOps == rhs.combinerOps );
74350     }
74351 
operator !=VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV74352     bool operator!=( PipelineFragmentShadingRateEnumStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
74353     {
74354       return !operator==( rhs );
74355     }
74356 #endif
74357 
74358 
74359 
74360   public:
74361     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
74362     const void* pNext = {};
74363     VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize;
74364     VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel;
74365     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
74366 
74367   };
74368   static_assert( sizeof( PipelineFragmentShadingRateEnumStateCreateInfoNV ) == sizeof( VkPipelineFragmentShadingRateEnumStateCreateInfoNV ), "struct and wrapper have different size!" );
74369   static_assert( std::is_standard_layout<PipelineFragmentShadingRateEnumStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
74370 
74371   template <>
74372   struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV>
74373   {
74374     using Type = PipelineFragmentShadingRateEnumStateCreateInfoNV;
74375   };
74376 
74377   struct PipelineFragmentShadingRateStateCreateInfoKHR
74378   {
74379     static const bool allowDuplicate = false;
74380     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
74381 
74382 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineFragmentShadingRateStateCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74383     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR(VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}, std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> const& combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }) VULKAN_HPP_NOEXCEPT
74384     : fragmentSize( fragmentSize_ ), combinerOps( combinerOps_ )
74385     {}
74386 
74387     VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74388 
PipelineFragmentShadingRateStateCreateInfoKHRVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74389     PipelineFragmentShadingRateStateCreateInfoKHR( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74390     {
74391       *this = rhs;
74392     }
74393 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74394 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74395     PipelineFragmentShadingRateStateCreateInfoKHR & operator=( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74396     {
74397       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs );
74398       return *this;
74399     }
74400 
operator =VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74401     PipelineFragmentShadingRateStateCreateInfoKHR & operator=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
74402     {
74403       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineFragmentShadingRateStateCreateInfoKHR ) );
74404       return *this;
74405     }
74406 
setPNextVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74407     PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74408     {
74409       pNext = pNext_;
74410       return *this;
74411     }
74412 
setFragmentSizeVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74413     PipelineFragmentShadingRateStateCreateInfoKHR & setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT
74414     {
74415       fragmentSize = fragmentSize_;
74416       return *this;
74417     }
74418 
setCombinerOpsVULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74419     PipelineFragmentShadingRateStateCreateInfoKHR & setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR,2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
74420     {
74421       combinerOps = combinerOps_;
74422       return *this;
74423     }
74424 
74425 
operator VkPipelineFragmentShadingRateStateCreateInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74426     operator VkPipelineFragmentShadingRateStateCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
74427     {
74428       return *reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>( this );
74429     }
74430 
operator VkPipelineFragmentShadingRateStateCreateInfoKHR&VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74431     operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
74432     {
74433       return *reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>( this );
74434     }
74435 
74436 
74437 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74438     auto operator<=>( PipelineFragmentShadingRateStateCreateInfoKHR const& ) const = default;
74439 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74440     bool operator==( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
74441     {
74442       return ( sType == rhs.sType )
74443           && ( pNext == rhs.pNext )
74444           && ( fragmentSize == rhs.fragmentSize )
74445           && ( combinerOps == rhs.combinerOps );
74446     }
74447 
operator !=VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR74448     bool operator!=( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
74449     {
74450       return !operator==( rhs );
74451     }
74452 #endif
74453 
74454 
74455 
74456   public:
74457     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
74458     const void* pNext = {};
74459     VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
74460     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
74461 
74462   };
74463   static_assert( sizeof( PipelineFragmentShadingRateStateCreateInfoKHR ) == sizeof( VkPipelineFragmentShadingRateStateCreateInfoKHR ), "struct and wrapper have different size!" );
74464   static_assert( std::is_standard_layout<PipelineFragmentShadingRateStateCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
74465 
74466   template <>
74467   struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR>
74468   {
74469     using Type = PipelineFragmentShadingRateStateCreateInfoKHR;
74470   };
74471 
74472   struct PipelineRasterizationConservativeStateCreateInfoEXT
74473   {
74474     static const bool allowDuplicate = false;
74475     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
74476 
74477 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74478     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled, float extraPrimitiveOverestimationSize_ = {}) VULKAN_HPP_NOEXCEPT
74479     : flags( flags_ ), conservativeRasterizationMode( conservativeRasterizationMode_ ), extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
74480     {}
74481 
74482     VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74483 
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74484     PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74485     {
74486       *this = rhs;
74487     }
74488 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74489 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74490     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74491     {
74492       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs );
74493       return *this;
74494     }
74495 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74496     PipelineRasterizationConservativeStateCreateInfoEXT & operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74497     {
74498       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) );
74499       return *this;
74500     }
74501 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74502     PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74503     {
74504       pNext = pNext_;
74505       return *this;
74506     }
74507 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74508     PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74509     {
74510       flags = flags_;
74511       return *this;
74512     }
74513 
setConservativeRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74514     PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
74515     {
74516       conservativeRasterizationMode = conservativeRasterizationMode_;
74517       return *this;
74518     }
74519 
setExtraPrimitiveOverestimationSizeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74520     PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
74521     {
74522       extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
74523       return *this;
74524     }
74525 
74526 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74527     operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74528     {
74529       return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
74530     }
74531 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74532     operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74533     {
74534       return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
74535     }
74536 
74537 
74538 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74539     auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const& ) const = default;
74540 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74541     bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74542     {
74543       return ( sType == rhs.sType )
74544           && ( pNext == rhs.pNext )
74545           && ( flags == rhs.flags )
74546           && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode )
74547           && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
74548     }
74549 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT74550     bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74551     {
74552       return !operator==( rhs );
74553     }
74554 #endif
74555 
74556 
74557 
74558   public:
74559     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
74560     const void* pNext = {};
74561     VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {};
74562     VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled;
74563     float extraPrimitiveOverestimationSize = {};
74564 
74565   };
74566   static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" );
74567   static_assert( std::is_standard_layout<PipelineRasterizationConservativeStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74568 
74569   template <>
74570   struct CppType<StructureType, StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT>
74571   {
74572     using Type = PipelineRasterizationConservativeStateCreateInfoEXT;
74573   };
74574 
74575   struct PipelineRasterizationDepthClipStateCreateInfoEXT
74576   {
74577     static const bool allowDuplicate = false;
74578     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
74579 
74580 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74581     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT
74582     : flags( flags_ ), depthClipEnable( depthClipEnable_ )
74583     {}
74584 
74585     VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74586 
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74587     PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74588     {
74589       *this = rhs;
74590     }
74591 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74592 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74593     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74594     {
74595       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs );
74596       return *this;
74597     }
74598 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74599     PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74600     {
74601       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) );
74602       return *this;
74603     }
74604 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74605     PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74606     {
74607       pNext = pNext_;
74608       return *this;
74609     }
74610 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74611     PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74612     {
74613       flags = flags_;
74614       return *this;
74615     }
74616 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74617     PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
74618     {
74619       depthClipEnable = depthClipEnable_;
74620       return *this;
74621     }
74622 
74623 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74624     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74625     {
74626       return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
74627     }
74628 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74629     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74630     {
74631       return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
74632     }
74633 
74634 
74635 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74636     auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const& ) const = default;
74637 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74638     bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74639     {
74640       return ( sType == rhs.sType )
74641           && ( pNext == rhs.pNext )
74642           && ( flags == rhs.flags )
74643           && ( depthClipEnable == rhs.depthClipEnable );
74644     }
74645 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT74646     bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74647     {
74648       return !operator==( rhs );
74649     }
74650 #endif
74651 
74652 
74653 
74654   public:
74655     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
74656     const void* pNext = {};
74657     VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {};
74658     VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
74659 
74660   };
74661   static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" );
74662   static_assert( std::is_standard_layout<PipelineRasterizationDepthClipStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74663 
74664   template <>
74665   struct CppType<StructureType, StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT>
74666   {
74667     using Type = PipelineRasterizationDepthClipStateCreateInfoEXT;
74668   };
74669 
74670   struct PipelineRasterizationLineStateCreateInfoEXT
74671   {
74672     static const bool allowDuplicate = false;
74673     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
74674 
74675 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74676     VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault, VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ = {}, uint32_t lineStippleFactor_ = {}, uint16_t lineStipplePattern_ = {}) VULKAN_HPP_NOEXCEPT
74677     : lineRasterizationMode( lineRasterizationMode_ ), stippledLineEnable( stippledLineEnable_ ), lineStippleFactor( lineStippleFactor_ ), lineStipplePattern( lineStipplePattern_ )
74678     {}
74679 
74680     VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74681 
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74682     PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74683     {
74684       *this = rhs;
74685     }
74686 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74687 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74688     PipelineRasterizationLineStateCreateInfoEXT & operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74689     {
74690       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs );
74691       return *this;
74692     }
74693 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74694     PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74695     {
74696       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationLineStateCreateInfoEXT ) );
74697       return *this;
74698     }
74699 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74700     PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74701     {
74702       pNext = pNext_;
74703       return *this;
74704     }
74705 
setLineRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74706     PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
74707     {
74708       lineRasterizationMode = lineRasterizationMode_;
74709       return *this;
74710     }
74711 
setStippledLineEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74712     PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
74713     {
74714       stippledLineEnable = stippledLineEnable_;
74715       return *this;
74716     }
74717 
setLineStippleFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74718     PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT
74719     {
74720       lineStippleFactor = lineStippleFactor_;
74721       return *this;
74722     }
74723 
setLineStipplePatternVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74724     PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT
74725     {
74726       lineStipplePattern = lineStipplePattern_;
74727       return *this;
74728     }
74729 
74730 
operator VkPipelineRasterizationLineStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74731     operator VkPipelineRasterizationLineStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74732     {
74733       return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
74734     }
74735 
operator VkPipelineRasterizationLineStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74736     operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74737     {
74738       return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
74739     }
74740 
74741 
74742 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74743     auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const& ) const = default;
74744 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74745     bool operator==( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74746     {
74747       return ( sType == rhs.sType )
74748           && ( pNext == rhs.pNext )
74749           && ( lineRasterizationMode == rhs.lineRasterizationMode )
74750           && ( stippledLineEnable == rhs.stippledLineEnable )
74751           && ( lineStippleFactor == rhs.lineStippleFactor )
74752           && ( lineStipplePattern == rhs.lineStipplePattern );
74753     }
74754 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT74755     bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74756     {
74757       return !operator==( rhs );
74758     }
74759 #endif
74760 
74761 
74762 
74763   public:
74764     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
74765     const void* pNext = {};
74766     VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault;
74767     VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {};
74768     uint32_t lineStippleFactor = {};
74769     uint16_t lineStipplePattern = {};
74770 
74771   };
74772   static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "struct and wrapper have different size!" );
74773   static_assert( std::is_standard_layout<PipelineRasterizationLineStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74774 
74775   template <>
74776   struct CppType<StructureType, StructureType::ePipelineRasterizationLineStateCreateInfoEXT>
74777   {
74778     using Type = PipelineRasterizationLineStateCreateInfoEXT;
74779   };
74780 
74781   struct PipelineRasterizationStateRasterizationOrderAMD
74782   {
74783     static const bool allowDuplicate = false;
74784     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
74785 
74786 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74787     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict) VULKAN_HPP_NOEXCEPT
74788     : rasterizationOrder( rasterizationOrder_ )
74789     {}
74790 
74791     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74792 
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74793     PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
74794     {
74795       *this = rhs;
74796     }
74797 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74798 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74799     PipelineRasterizationStateRasterizationOrderAMD & operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
74800     {
74801       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs );
74802       return *this;
74803     }
74804 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74805     PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
74806     {
74807       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationStateRasterizationOrderAMD ) );
74808       return *this;
74809     }
74810 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74811     PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74812     {
74813       pNext = pNext_;
74814       return *this;
74815     }
74816 
setRasterizationOrderVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74817     PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
74818     {
74819       rasterizationOrder = rasterizationOrder_;
74820       return *this;
74821     }
74822 
74823 
operator VkPipelineRasterizationStateRasterizationOrderAMD const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74824     operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const VULKAN_HPP_NOEXCEPT
74825     {
74826       return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
74827     }
74828 
operator VkPipelineRasterizationStateRasterizationOrderAMD&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74829     operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
74830     {
74831       return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
74832     }
74833 
74834 
74835 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74836     auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const& ) const = default;
74837 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74838     bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
74839     {
74840       return ( sType == rhs.sType )
74841           && ( pNext == rhs.pNext )
74842           && ( rasterizationOrder == rhs.rasterizationOrder );
74843     }
74844 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD74845     bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
74846     {
74847       return !operator==( rhs );
74848     }
74849 #endif
74850 
74851 
74852 
74853   public:
74854     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
74855     const void* pNext = {};
74856     VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict;
74857 
74858   };
74859   static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" );
74860   static_assert( std::is_standard_layout<PipelineRasterizationStateRasterizationOrderAMD>::value, "struct wrapper is not a standard layout!" );
74861 
74862   template <>
74863   struct CppType<StructureType, StructureType::ePipelineRasterizationStateRasterizationOrderAMD>
74864   {
74865     using Type = PipelineRasterizationStateRasterizationOrderAMD;
74866   };
74867 
74868   struct PipelineRasterizationStateStreamCreateInfoEXT
74869   {
74870     static const bool allowDuplicate = false;
74871     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
74872 
74873 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74874     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {}, uint32_t rasterizationStream_ = {}) VULKAN_HPP_NOEXCEPT
74875     : flags( flags_ ), rasterizationStream( rasterizationStream_ )
74876     {}
74877 
74878     VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74879 
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74880     PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74881     {
74882       *this = rhs;
74883     }
74884 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74885 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74886     PipelineRasterizationStateStreamCreateInfoEXT & operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74887     {
74888       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs );
74889       return *this;
74890     }
74891 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74892     PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
74893     {
74894       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) );
74895       return *this;
74896     }
74897 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74898     PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74899     {
74900       pNext = pNext_;
74901       return *this;
74902     }
74903 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74904     PipelineRasterizationStateStreamCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
74905     {
74906       flags = flags_;
74907       return *this;
74908     }
74909 
setRasterizationStreamVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74910     PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT
74911     {
74912       rasterizationStream = rasterizationStream_;
74913       return *this;
74914     }
74915 
74916 
operator VkPipelineRasterizationStateStreamCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74917     operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
74918     {
74919       return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
74920     }
74921 
operator VkPipelineRasterizationStateStreamCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74922     operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
74923     {
74924       return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
74925     }
74926 
74927 
74928 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
74929     auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const& ) const = default;
74930 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74931     bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74932     {
74933       return ( sType == rhs.sType )
74934           && ( pNext == rhs.pNext )
74935           && ( flags == rhs.flags )
74936           && ( rasterizationStream == rhs.rasterizationStream );
74937     }
74938 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT74939     bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
74940     {
74941       return !operator==( rhs );
74942     }
74943 #endif
74944 
74945 
74946 
74947   public:
74948     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
74949     const void* pNext = {};
74950     VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {};
74951     uint32_t rasterizationStream = {};
74952 
74953   };
74954   static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" );
74955   static_assert( std::is_standard_layout<PipelineRasterizationStateStreamCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
74956 
74957   template <>
74958   struct CppType<StructureType, StructureType::ePipelineRasterizationStateStreamCreateInfoEXT>
74959   {
74960     using Type = PipelineRasterizationStateStreamCreateInfoEXT;
74961   };
74962 
74963   struct PipelineRepresentativeFragmentTestStateCreateInfoNV
74964   {
74965     static const bool allowDuplicate = false;
74966     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
74967 
74968 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74969     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {}) VULKAN_HPP_NOEXCEPT
74970     : representativeFragmentTestEnable( representativeFragmentTestEnable_ )
74971     {}
74972 
74973     VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
74974 
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74975     PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74976     {
74977       *this = rhs;
74978     }
74979 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
74980 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74981     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74982     {
74983       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs );
74984       return *this;
74985     }
74986 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74987     PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
74988     {
74989       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) );
74990       return *this;
74991     }
74992 
setPNextVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74993     PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
74994     {
74995       pNext = pNext_;
74996       return *this;
74997     }
74998 
setRepresentativeFragmentTestEnableVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV74999     PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
75000     {
75001       representativeFragmentTestEnable = representativeFragmentTestEnable_;
75002       return *this;
75003     }
75004 
75005 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75006     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75007     {
75008       return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
75009     }
75010 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75011     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75012     {
75013       return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
75014     }
75015 
75016 
75017 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75018     auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const& ) const = default;
75019 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75020     bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75021     {
75022       return ( sType == rhs.sType )
75023           && ( pNext == rhs.pNext )
75024           && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
75025     }
75026 
operator !=VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV75027     bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75028     {
75029       return !operator==( rhs );
75030     }
75031 #endif
75032 
75033 
75034 
75035   public:
75036     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
75037     const void* pNext = {};
75038     VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {};
75039 
75040   };
75041   static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" );
75042   static_assert( std::is_standard_layout<PipelineRepresentativeFragmentTestStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75043 
75044   template <>
75045   struct CppType<StructureType, StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV>
75046   {
75047     using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV;
75048   };
75049 
75050   struct PipelineSampleLocationsStateCreateInfoEXT
75051   {
75052     static const bool allowDuplicate = false;
75053     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
75054 
75055 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75056     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
75057     : sampleLocationsEnable( sampleLocationsEnable_ ), sampleLocationsInfo( sampleLocationsInfo_ )
75058     {}
75059 
75060     VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75061 
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75062     PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75063     {
75064       *this = rhs;
75065     }
75066 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75067 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75068     PipelineSampleLocationsStateCreateInfoEXT & operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75069     {
75070       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs );
75071       return *this;
75072     }
75073 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75074     PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75075     {
75076       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineSampleLocationsStateCreateInfoEXT ) );
75077       return *this;
75078     }
75079 
setPNextVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75080     PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75081     {
75082       pNext = pNext_;
75083       return *this;
75084     }
75085 
setSampleLocationsEnableVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75086     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
75087     {
75088       sampleLocationsEnable = sampleLocationsEnable_;
75089       return *this;
75090     }
75091 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75092     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
75093     {
75094       sampleLocationsInfo = sampleLocationsInfo_;
75095       return *this;
75096     }
75097 
75098 
operator VkPipelineSampleLocationsStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75099     operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75100     {
75101       return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
75102     }
75103 
operator VkPipelineSampleLocationsStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75104     operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75105     {
75106       return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
75107     }
75108 
75109 
75110 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75111     auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const& ) const = default;
75112 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75113     bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75114     {
75115       return ( sType == rhs.sType )
75116           && ( pNext == rhs.pNext )
75117           && ( sampleLocationsEnable == rhs.sampleLocationsEnable )
75118           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
75119     }
75120 
operator !=VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT75121     bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75122     {
75123       return !operator==( rhs );
75124     }
75125 #endif
75126 
75127 
75128 
75129   public:
75130     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
75131     const void* pNext = {};
75132     VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {};
75133     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
75134 
75135   };
75136   static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" );
75137   static_assert( std::is_standard_layout<PipelineSampleLocationsStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75138 
75139   template <>
75140   struct CppType<StructureType, StructureType::ePipelineSampleLocationsStateCreateInfoEXT>
75141   {
75142     using Type = PipelineSampleLocationsStateCreateInfoEXT;
75143   };
75144 
75145   struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
75146   {
75147     static const bool allowDuplicate = false;
75148     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
75149 
75150 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75151     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(uint32_t requiredSubgroupSize_ = {}) VULKAN_HPP_NOEXCEPT
75152     : requiredSubgroupSize( requiredSubgroupSize_ )
75153     {}
75154 
75155     VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75156 
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75157     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75158     {
75159       *this = rhs;
75160     }
75161 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75162 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75163     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75164     {
75165       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const *>( &rhs );
75166       return *this;
75167     }
75168 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75169     PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75170     {
75171       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) );
75172       return *this;
75173     }
75174 
75175 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75176     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75177     {
75178       return *reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
75179     }
75180 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75181     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75182     {
75183       return *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
75184     }
75185 
75186 
75187 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75188     auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& ) const = default;
75189 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75190     bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75191     {
75192       return ( sType == rhs.sType )
75193           && ( pNext == rhs.pNext )
75194           && ( requiredSubgroupSize == rhs.requiredSubgroupSize );
75195     }
75196 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT75197     bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75198     {
75199       return !operator==( rhs );
75200     }
75201 #endif
75202 
75203 
75204 
75205   public:
75206     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
75207     void* pNext = {};
75208     uint32_t requiredSubgroupSize = {};
75209 
75210   };
75211   static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "struct and wrapper have different size!" );
75212   static_assert( std::is_standard_layout<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75213 
75214   template <>
75215   struct CppType<StructureType, StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>
75216   {
75217     using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
75218   };
75219 
75220   struct PipelineTessellationDomainOriginStateCreateInfo
75221   {
75222     static const bool allowDuplicate = false;
75223     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
75224 
75225 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75226     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft) VULKAN_HPP_NOEXCEPT
75227     : domainOrigin( domainOrigin_ )
75228     {}
75229 
75230     VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75231 
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75232     PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75233     {
75234       *this = rhs;
75235     }
75236 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75237 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75238     PipelineTessellationDomainOriginStateCreateInfo & operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75239     {
75240       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs );
75241       return *this;
75242     }
75243 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75244     PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
75245     {
75246       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineTessellationDomainOriginStateCreateInfo ) );
75247       return *this;
75248     }
75249 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75250     PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75251     {
75252       pNext = pNext_;
75253       return *this;
75254     }
75255 
setDomainOriginVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75256     PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
75257     {
75258       domainOrigin = domainOrigin_;
75259       return *this;
75260     }
75261 
75262 
operator VkPipelineTessellationDomainOriginStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75263     operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT
75264     {
75265       return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
75266     }
75267 
operator VkPipelineTessellationDomainOriginStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75268     operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
75269     {
75270       return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
75271     }
75272 
75273 
75274 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75275     auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const& ) const = default;
75276 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75277     bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75278     {
75279       return ( sType == rhs.sType )
75280           && ( pNext == rhs.pNext )
75281           && ( domainOrigin == rhs.domainOrigin );
75282     }
75283 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo75284     bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
75285     {
75286       return !operator==( rhs );
75287     }
75288 #endif
75289 
75290 
75291 
75292   public:
75293     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
75294     const void* pNext = {};
75295     VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft;
75296 
75297   };
75298   static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" );
75299   static_assert( std::is_standard_layout<PipelineTessellationDomainOriginStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
75300 
75301   template <>
75302   struct CppType<StructureType, StructureType::ePipelineTessellationDomainOriginStateCreateInfo>
75303   {
75304     using Type = PipelineTessellationDomainOriginStateCreateInfo;
75305   };
75306   using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
75307 
75308   struct VertexInputBindingDivisorDescriptionEXT
75309   {
75310 
75311 
75312 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75313     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT(uint32_t binding_ = {}, uint32_t divisor_ = {}) VULKAN_HPP_NOEXCEPT
75314     : binding( binding_ ), divisor( divisor_ )
75315     {}
75316 
75317     VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75318 
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75319     VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75320     {
75321       *this = rhs;
75322     }
75323 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75324 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75325     VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75326     {
75327       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const *>( &rhs );
75328       return *this;
75329     }
75330 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75331     VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75332     {
75333       memcpy( static_cast<void *>( this ), &rhs, sizeof( VertexInputBindingDivisorDescriptionEXT ) );
75334       return *this;
75335     }
75336 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75337     VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
75338     {
75339       binding = binding_;
75340       return *this;
75341     }
75342 
setDivisorVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75343     VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
75344     {
75345       divisor = divisor_;
75346       return *this;
75347     }
75348 
75349 
operator VkVertexInputBindingDivisorDescriptionEXT const&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75350     operator VkVertexInputBindingDivisorDescriptionEXT const&() const VULKAN_HPP_NOEXCEPT
75351     {
75352       return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT*>( this );
75353     }
75354 
operator VkVertexInputBindingDivisorDescriptionEXT&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75355     operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT
75356     {
75357       return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>( this );
75358     }
75359 
75360 
75361 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75362     auto operator<=>( VertexInputBindingDivisorDescriptionEXT const& ) const = default;
75363 #else
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75364     bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75365     {
75366       return ( binding == rhs.binding )
75367           && ( divisor == rhs.divisor );
75368     }
75369 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT75370     bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75371     {
75372       return !operator==( rhs );
75373     }
75374 #endif
75375 
75376 
75377 
75378   public:
75379     uint32_t binding = {};
75380     uint32_t divisor = {};
75381 
75382   };
75383   static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" );
75384   static_assert( std::is_standard_layout<VertexInputBindingDivisorDescriptionEXT>::value, "struct wrapper is not a standard layout!" );
75385 
75386   struct PipelineVertexInputDivisorStateCreateInfoEXT
75387   {
75388     static const bool allowDuplicate = false;
75389     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
75390 
75391 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75392     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT(uint32_t vertexBindingDivisorCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = {}) VULKAN_HPP_NOEXCEPT
75393     : vertexBindingDivisorCount( vertexBindingDivisorCount_ ), pVertexBindingDivisors( pVertexBindingDivisors_ )
75394     {}
75395 
75396     VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75397 
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75398     PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75399     {
75400       *this = rhs;
75401     }
75402 
75403 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75404     PipelineVertexInputDivisorStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ )
75405     : vertexBindingDivisorCount( static_cast<uint32_t>( vertexBindingDivisors_.size() ) ), pVertexBindingDivisors( vertexBindingDivisors_.data() )
75406     {}
75407 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75408 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75409 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75410     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75411     {
75412       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs );
75413       return *this;
75414     }
75415 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75416     PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
75417     {
75418       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) );
75419       return *this;
75420     }
75421 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75422     PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75423     {
75424       pNext = pNext_;
75425       return *this;
75426     }
75427 
setVertexBindingDivisorCountVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75428     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
75429     {
75430       vertexBindingDivisorCount = vertexBindingDivisorCount_;
75431       return *this;
75432     }
75433 
setPVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75434     PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
75435     {
75436       pVertexBindingDivisors = pVertexBindingDivisors_;
75437       return *this;
75438     }
75439 
75440 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75441     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
75442     {
75443       vertexBindingDivisorCount = static_cast<uint32_t>( vertexBindingDivisors_.size() );
75444       pVertexBindingDivisors = vertexBindingDivisors_.data();
75445       return *this;
75446     }
75447 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75448 
75449 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75450     operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
75451     {
75452       return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
75453     }
75454 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75455     operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
75456     {
75457       return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
75458     }
75459 
75460 
75461 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75462     auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const& ) const = default;
75463 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75464     bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75465     {
75466       return ( sType == rhs.sType )
75467           && ( pNext == rhs.pNext )
75468           && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount )
75469           && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
75470     }
75471 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT75472     bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
75473     {
75474       return !operator==( rhs );
75475     }
75476 #endif
75477 
75478 
75479 
75480   public:
75481     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
75482     const void* pNext = {};
75483     uint32_t vertexBindingDivisorCount = {};
75484     const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors = {};
75485 
75486   };
75487   static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" );
75488   static_assert( std::is_standard_layout<PipelineVertexInputDivisorStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
75489 
75490   template <>
75491   struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT>
75492   {
75493     using Type = PipelineVertexInputDivisorStateCreateInfoEXT;
75494   };
75495 
75496   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
75497   {
75498     static const bool allowDuplicate = false;
75499     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
75500 
75501 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75502     VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault, uint32_t customSampleOrderCount_ = {}, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ = {}) VULKAN_HPP_NOEXCEPT
75503     : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( customSampleOrderCount_ ), pCustomSampleOrders( pCustomSampleOrders_ )
75504     {}
75505 
75506     VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75507 
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75508     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75509     {
75510       *this = rhs;
75511     }
75512 
75513 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75514     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ )
75515     : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( static_cast<uint32_t>( customSampleOrders_.size() ) ), pCustomSampleOrders( customSampleOrders_.data() )
75516     {}
75517 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75518 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75519 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75520     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75521     {
75522       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs );
75523       return *this;
75524     }
75525 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75526     PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75527     {
75528       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) );
75529       return *this;
75530     }
75531 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75532     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75533     {
75534       pNext = pNext_;
75535       return *this;
75536     }
75537 
setSampleOrderTypeVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75538     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
75539     {
75540       sampleOrderType = sampleOrderType_;
75541       return *this;
75542     }
75543 
setCustomSampleOrderCountVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75544     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
75545     {
75546       customSampleOrderCount = customSampleOrderCount_;
75547       return *this;
75548     }
75549 
setPCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75550     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
75551     {
75552       pCustomSampleOrders = pCustomSampleOrders_;
75553       return *this;
75554     }
75555 
75556 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75557     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ ) VULKAN_HPP_NOEXCEPT
75558     {
75559       customSampleOrderCount = static_cast<uint32_t>( customSampleOrders_.size() );
75560       pCustomSampleOrders = customSampleOrders_.data();
75561       return *this;
75562     }
75563 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75564 
75565 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75566     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75567     {
75568       return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
75569     }
75570 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75571     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75572     {
75573       return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
75574     }
75575 
75576 
75577 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75578     auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& ) const = default;
75579 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75580     bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75581     {
75582       return ( sType == rhs.sType )
75583           && ( pNext == rhs.pNext )
75584           && ( sampleOrderType == rhs.sampleOrderType )
75585           && ( customSampleOrderCount == rhs.customSampleOrderCount )
75586           && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
75587     }
75588 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV75589     bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75590     {
75591       return !operator==( rhs );
75592     }
75593 #endif
75594 
75595 
75596 
75597   public:
75598     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
75599     const void* pNext = {};
75600     VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault;
75601     uint32_t customSampleOrderCount = {};
75602     const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders = {};
75603 
75604   };
75605   static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" );
75606   static_assert( std::is_standard_layout<PipelineViewportCoarseSampleOrderStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75607 
75608   template <>
75609   struct CppType<StructureType, StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV>
75610   {
75611     using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
75612   };
75613 
75614   struct PipelineViewportExclusiveScissorStateCreateInfoNV
75615   {
75616     static const bool allowDuplicate = false;
75617     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
75618 
75619 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75620     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV(uint32_t exclusiveScissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ = {}) VULKAN_HPP_NOEXCEPT
75621     : exclusiveScissorCount( exclusiveScissorCount_ ), pExclusiveScissors( pExclusiveScissors_ )
75622     {}
75623 
75624     VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75625 
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75626     PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75627     {
75628       *this = rhs;
75629     }
75630 
75631 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75632     PipelineViewportExclusiveScissorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ )
75633     : exclusiveScissorCount( static_cast<uint32_t>( exclusiveScissors_.size() ) ), pExclusiveScissors( exclusiveScissors_.data() )
75634     {}
75635 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75636 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75637 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75638     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75639     {
75640       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs );
75641       return *this;
75642     }
75643 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75644     PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75645     {
75646       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) );
75647       return *this;
75648     }
75649 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75650     PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75651     {
75652       pNext = pNext_;
75653       return *this;
75654     }
75655 
setExclusiveScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75656     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT
75657     {
75658       exclusiveScissorCount = exclusiveScissorCount_;
75659       return *this;
75660     }
75661 
setPExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75662     PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
75663     {
75664       pExclusiveScissors = pExclusiveScissors_;
75665       return *this;
75666     }
75667 
75668 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75669     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
75670     {
75671       exclusiveScissorCount = static_cast<uint32_t>( exclusiveScissors_.size() );
75672       pExclusiveScissors = exclusiveScissors_.data();
75673       return *this;
75674     }
75675 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75676 
75677 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75678     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75679     {
75680       return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
75681     }
75682 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75683     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75684     {
75685       return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
75686     }
75687 
75688 
75689 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75690     auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const& ) const = default;
75691 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75692     bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75693     {
75694       return ( sType == rhs.sType )
75695           && ( pNext == rhs.pNext )
75696           && ( exclusiveScissorCount == rhs.exclusiveScissorCount )
75697           && ( pExclusiveScissors == rhs.pExclusiveScissors );
75698     }
75699 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV75700     bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75701     {
75702       return !operator==( rhs );
75703     }
75704 #endif
75705 
75706 
75707 
75708   public:
75709     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
75710     const void* pNext = {};
75711     uint32_t exclusiveScissorCount = {};
75712     const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors = {};
75713 
75714   };
75715   static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" );
75716   static_assert( std::is_standard_layout<PipelineViewportExclusiveScissorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75717 
75718   template <>
75719   struct CppType<StructureType, StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV>
75720   {
75721     using Type = PipelineViewportExclusiveScissorStateCreateInfoNV;
75722   };
75723 
75724   struct PipelineViewportShadingRateImageStateCreateInfoNV
75725   {
75726     static const bool allowDuplicate = false;
75727     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
75728 
75729 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75730     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ = {}) VULKAN_HPP_NOEXCEPT
75731     : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( viewportCount_ ), pShadingRatePalettes( pShadingRatePalettes_ )
75732     {}
75733 
75734     VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75735 
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75736     PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75737     {
75738       *this = rhs;
75739     }
75740 
75741 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75742     PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ )
75743     : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( static_cast<uint32_t>( shadingRatePalettes_.size() ) ), pShadingRatePalettes( shadingRatePalettes_.data() )
75744     {}
75745 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75746 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75747 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75748     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75749     {
75750       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs );
75751       return *this;
75752     }
75753 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75754     PipelineViewportShadingRateImageStateCreateInfoNV & operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75755     {
75756       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) );
75757       return *this;
75758     }
75759 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75760     PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75761     {
75762       pNext = pNext_;
75763       return *this;
75764     }
75765 
setShadingRateImageEnableVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75766     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
75767     {
75768       shadingRateImageEnable = shadingRateImageEnable_;
75769       return *this;
75770     }
75771 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75772     PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
75773     {
75774       viewportCount = viewportCount_;
75775       return *this;
75776     }
75777 
setPShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75778     PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
75779     {
75780       pShadingRatePalettes = pShadingRatePalettes_;
75781       return *this;
75782     }
75783 
75784 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75785     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
75786     {
75787       viewportCount = static_cast<uint32_t>( shadingRatePalettes_.size() );
75788       pShadingRatePalettes = shadingRatePalettes_.data();
75789       return *this;
75790     }
75791 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75792 
75793 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75794     operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
75795     {
75796       return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
75797     }
75798 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75799     operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
75800     {
75801       return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
75802     }
75803 
75804 
75805 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75806     auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const& ) const = default;
75807 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75808     bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75809     {
75810       return ( sType == rhs.sType )
75811           && ( pNext == rhs.pNext )
75812           && ( shadingRateImageEnable == rhs.shadingRateImageEnable )
75813           && ( viewportCount == rhs.viewportCount )
75814           && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
75815     }
75816 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV75817     bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75818     {
75819       return !operator==( rhs );
75820     }
75821 #endif
75822 
75823 
75824 
75825   public:
75826     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
75827     const void* pNext = {};
75828     VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {};
75829     uint32_t viewportCount = {};
75830     const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes = {};
75831 
75832   };
75833   static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" );
75834   static_assert( std::is_standard_layout<PipelineViewportShadingRateImageStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
75835 
75836   template <>
75837   struct CppType<StructureType, StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV>
75838   {
75839     using Type = PipelineViewportShadingRateImageStateCreateInfoNV;
75840   };
75841 
75842   struct ViewportSwizzleNV
75843   {
75844 
75845 
75846 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75847     VULKAN_HPP_CONSTEXPR ViewportSwizzleNV(VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX) VULKAN_HPP_NOEXCEPT
75848     : x( x_ ), y( y_ ), z( z_ ), w( w_ )
75849     {}
75850 
75851     VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75852 
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75853     ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
75854     {
75855       *this = rhs;
75856     }
75857 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75858 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75859     ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
75860     {
75861       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const *>( &rhs );
75862       return *this;
75863     }
75864 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75865     ViewportSwizzleNV & operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
75866     {
75867       memcpy( static_cast<void *>( this ), &rhs, sizeof( ViewportSwizzleNV ) );
75868       return *this;
75869     }
75870 
setXVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75871     ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT
75872     {
75873       x = x_;
75874       return *this;
75875     }
75876 
setYVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75877     ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT
75878     {
75879       y = y_;
75880       return *this;
75881     }
75882 
setZVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75883     ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT
75884     {
75885       z = z_;
75886       return *this;
75887     }
75888 
setWVULKAN_HPP_NAMESPACE::ViewportSwizzleNV75889     ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT
75890     {
75891       w = w_;
75892       return *this;
75893     }
75894 
75895 
operator VkViewportSwizzleNV const&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75896     operator VkViewportSwizzleNV const&() const VULKAN_HPP_NOEXCEPT
75897     {
75898       return *reinterpret_cast<const VkViewportSwizzleNV*>( this );
75899     }
75900 
operator VkViewportSwizzleNV&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75901     operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
75902     {
75903       return *reinterpret_cast<VkViewportSwizzleNV*>( this );
75904     }
75905 
75906 
75907 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
75908     auto operator<=>( ViewportSwizzleNV const& ) const = default;
75909 #else
operator ==VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75910     bool operator==( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75911     {
75912       return ( x == rhs.x )
75913           && ( y == rhs.y )
75914           && ( z == rhs.z )
75915           && ( w == rhs.w );
75916     }
75917 
operator !=VULKAN_HPP_NAMESPACE::ViewportSwizzleNV75918     bool operator!=( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT
75919     {
75920       return !operator==( rhs );
75921     }
75922 #endif
75923 
75924 
75925 
75926   public:
75927     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
75928     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
75929     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
75930     VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
75931 
75932   };
75933   static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" );
75934   static_assert( std::is_standard_layout<ViewportSwizzleNV>::value, "struct wrapper is not a standard layout!" );
75935 
75936   struct PipelineViewportSwizzleStateCreateInfoNV
75937   {
75938     static const bool allowDuplicate = false;
75939     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
75940 
75941 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75942     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ = {}) VULKAN_HPP_NOEXCEPT
75943     : flags( flags_ ), viewportCount( viewportCount_ ), pViewportSwizzles( pViewportSwizzles_ )
75944     {}
75945 
75946     VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
75947 
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75948     PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75949     {
75950       *this = rhs;
75951     }
75952 
75953 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75954     PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ )
75955     : flags( flags_ ), viewportCount( static_cast<uint32_t>( viewportSwizzles_.size() ) ), pViewportSwizzles( viewportSwizzles_.data() )
75956     {}
75957 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
75958 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
75959 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75960     PipelineViewportSwizzleStateCreateInfoNV & operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75961     {
75962       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs );
75963       return *this;
75964     }
75965 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75966     PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
75967     {
75968       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportSwizzleStateCreateInfoNV ) );
75969       return *this;
75970     }
75971 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75972     PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
75973     {
75974       pNext = pNext_;
75975       return *this;
75976     }
75977 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75978     PipelineViewportSwizzleStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
75979     {
75980       flags = flags_;
75981       return *this;
75982     }
75983 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75984     PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
75985     {
75986       viewportCount = viewportCount_;
75987       return *this;
75988     }
75989 
setPViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75990     PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
75991     {
75992       pViewportSwizzles = pViewportSwizzles_;
75993       return *this;
75994     }
75995 
75996 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV75997     PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
75998     {
75999       viewportCount = static_cast<uint32_t>( viewportSwizzles_.size() );
76000       pViewportSwizzles = viewportSwizzles_.data();
76001       return *this;
76002     }
76003 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76004 
76005 
operator VkPipelineViewportSwizzleStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76006     operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
76007     {
76008       return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
76009     }
76010 
operator VkPipelineViewportSwizzleStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76011     operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
76012     {
76013       return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
76014     }
76015 
76016 
76017 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76018     auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const& ) const = default;
76019 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76020     bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76021     {
76022       return ( sType == rhs.sType )
76023           && ( pNext == rhs.pNext )
76024           && ( flags == rhs.flags )
76025           && ( viewportCount == rhs.viewportCount )
76026           && ( pViewportSwizzles == rhs.pViewportSwizzles );
76027     }
76028 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV76029     bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76030     {
76031       return !operator==( rhs );
76032     }
76033 #endif
76034 
76035 
76036 
76037   public:
76038     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
76039     const void* pNext = {};
76040     VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {};
76041     uint32_t viewportCount = {};
76042     const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles = {};
76043 
76044   };
76045   static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" );
76046   static_assert( std::is_standard_layout<PipelineViewportSwizzleStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
76047 
76048   template <>
76049   struct CppType<StructureType, StructureType::ePipelineViewportSwizzleStateCreateInfoNV>
76050   {
76051     using Type = PipelineViewportSwizzleStateCreateInfoNV;
76052   };
76053 
76054   struct PipelineViewportWScalingStateCreateInfoNV
76055   {
76056     static const bool allowDuplicate = false;
76057     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
76058 
76059 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76060     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ = {}) VULKAN_HPP_NOEXCEPT
76061     : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( viewportCount_ ), pViewportWScalings( pViewportWScalings_ )
76062     {}
76063 
76064     VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76065 
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76066     PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
76067     {
76068       *this = rhs;
76069     }
76070 
76071 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76072     PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ )
76073     : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( static_cast<uint32_t>( viewportWScalings_.size() ) ), pViewportWScalings( viewportWScalings_.data() )
76074     {}
76075 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76076 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76077 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76078     PipelineViewportWScalingStateCreateInfoNV & operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
76079     {
76080       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const *>( &rhs );
76081       return *this;
76082     }
76083 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76084     PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
76085     {
76086       memcpy( static_cast<void *>( this ), &rhs, sizeof( PipelineViewportWScalingStateCreateInfoNV ) );
76087       return *this;
76088     }
76089 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76090     PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76091     {
76092       pNext = pNext_;
76093       return *this;
76094     }
76095 
setViewportWScalingEnableVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76096     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
76097     {
76098       viewportWScalingEnable = viewportWScalingEnable_;
76099       return *this;
76100     }
76101 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76102     PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
76103     {
76104       viewportCount = viewportCount_;
76105       return *this;
76106     }
76107 
setPViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76108     PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
76109     {
76110       pViewportWScalings = pViewportWScalings_;
76111       return *this;
76112     }
76113 
76114 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76115     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ ) VULKAN_HPP_NOEXCEPT
76116     {
76117       viewportCount = static_cast<uint32_t>( viewportWScalings_.size() );
76118       pViewportWScalings = viewportWScalings_.data();
76119       return *this;
76120     }
76121 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76122 
76123 
operator VkPipelineViewportWScalingStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76124     operator VkPipelineViewportWScalingStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT
76125     {
76126       return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>( this );
76127     }
76128 
operator VkPipelineViewportWScalingStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76129     operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
76130     {
76131       return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>( this );
76132     }
76133 
76134 
76135 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76136     auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const& ) const = default;
76137 #else
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76138     bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76139     {
76140       return ( sType == rhs.sType )
76141           && ( pNext == rhs.pNext )
76142           && ( viewportWScalingEnable == rhs.viewportWScalingEnable )
76143           && ( viewportCount == rhs.viewportCount )
76144           && ( pViewportWScalings == rhs.pViewportWScalings );
76145     }
76146 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV76147     bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76148     {
76149       return !operator==( rhs );
76150     }
76151 #endif
76152 
76153 
76154 
76155   public:
76156     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
76157     const void* pNext = {};
76158     VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {};
76159     uint32_t viewportCount = {};
76160     const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings = {};
76161 
76162   };
76163   static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" );
76164   static_assert( std::is_standard_layout<PipelineViewportWScalingStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
76165 
76166   template <>
76167   struct CppType<StructureType, StructureType::ePipelineViewportWScalingStateCreateInfoNV>
76168   {
76169     using Type = PipelineViewportWScalingStateCreateInfoNV;
76170   };
76171 
76172 #ifdef VK_USE_PLATFORM_GGP
76173   struct PresentFrameTokenGGP
76174   {
76175     static const bool allowDuplicate = false;
76176     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP;
76177 
76178 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76179     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP(GgpFrameToken frameToken_ = {}) VULKAN_HPP_NOEXCEPT
76180     : frameToken( frameToken_ )
76181     {}
76182 
76183     VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76184 
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76185     PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
76186     {
76187       *this = rhs;
76188     }
76189 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76190 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76191     PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
76192     {
76193       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const *>( &rhs );
76194       return *this;
76195     }
76196 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76197     PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
76198     {
76199       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentFrameTokenGGP ) );
76200       return *this;
76201     }
76202 
setPNextVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76203     PresentFrameTokenGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76204     {
76205       pNext = pNext_;
76206       return *this;
76207     }
76208 
setFrameTokenVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76209     PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT
76210     {
76211       frameToken = frameToken_;
76212       return *this;
76213     }
76214 
76215 
operator VkPresentFrameTokenGGP const&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76216     operator VkPresentFrameTokenGGP const&() const VULKAN_HPP_NOEXCEPT
76217     {
76218       return *reinterpret_cast<const VkPresentFrameTokenGGP*>( this );
76219     }
76220 
operator VkPresentFrameTokenGGP&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76221     operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
76222     {
76223       return *reinterpret_cast<VkPresentFrameTokenGGP*>( this );
76224     }
76225 
76226 
76227 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76228     auto operator<=>( PresentFrameTokenGGP const& ) const = default;
76229 #else
operator ==VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76230     bool operator==( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
76231     {
76232       return ( sType == rhs.sType )
76233           && ( pNext == rhs.pNext )
76234           && ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 );
76235     }
76236 
operator !=VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP76237     bool operator!=( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
76238     {
76239       return !operator==( rhs );
76240     }
76241 #endif
76242 
76243 
76244 
76245   public:
76246     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP;
76247     const void* pNext = {};
76248     GgpFrameToken frameToken = {};
76249 
76250   };
76251   static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" );
76252   static_assert( std::is_standard_layout<PresentFrameTokenGGP>::value, "struct wrapper is not a standard layout!" );
76253 
76254   template <>
76255   struct CppType<StructureType, StructureType::ePresentFrameTokenGGP>
76256   {
76257     using Type = PresentFrameTokenGGP;
76258   };
76259 #endif /*VK_USE_PLATFORM_GGP*/
76260 
76261   struct RectLayerKHR
76262   {
76263 
76264 
76265 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR76266     VULKAN_HPP_CONSTEXPR RectLayerKHR(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {}) VULKAN_HPP_NOEXCEPT
76267     : offset( offset_ ), extent( extent_ ), layer( layer_ )
76268     {}
76269 
76270     VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76271 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR76272     RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76273     {
76274       *this = rhs;
76275     }
76276 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR76277     explicit RectLayerKHR( Rect2D const& rect2D, uint32_t layer_ = {} )
76278       : offset( rect2D.offset )
76279       , extent( rect2D.extent )
76280       , layer( layer_ )
76281     {}
76282 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76283 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR76284     RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76285     {
76286       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RectLayerKHR const *>( &rhs );
76287       return *this;
76288     }
76289 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR76290     RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76291     {
76292       memcpy( static_cast<void *>( this ), &rhs, sizeof( RectLayerKHR ) );
76293       return *this;
76294     }
76295 
setOffsetVULKAN_HPP_NAMESPACE::RectLayerKHR76296     RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
76297     {
76298       offset = offset_;
76299       return *this;
76300     }
76301 
setExtentVULKAN_HPP_NAMESPACE::RectLayerKHR76302     RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
76303     {
76304       extent = extent_;
76305       return *this;
76306     }
76307 
setLayerVULKAN_HPP_NAMESPACE::RectLayerKHR76308     RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT
76309     {
76310       layer = layer_;
76311       return *this;
76312     }
76313 
76314 
operator VkRectLayerKHR const&VULKAN_HPP_NAMESPACE::RectLayerKHR76315     operator VkRectLayerKHR const&() const VULKAN_HPP_NOEXCEPT
76316     {
76317       return *reinterpret_cast<const VkRectLayerKHR*>( this );
76318     }
76319 
operator VkRectLayerKHR&VULKAN_HPP_NAMESPACE::RectLayerKHR76320     operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
76321     {
76322       return *reinterpret_cast<VkRectLayerKHR*>( this );
76323     }
76324 
76325 
76326 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76327     auto operator<=>( RectLayerKHR const& ) const = default;
76328 #else
operator ==VULKAN_HPP_NAMESPACE::RectLayerKHR76329     bool operator==( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76330     {
76331       return ( offset == rhs.offset )
76332           && ( extent == rhs.extent )
76333           && ( layer == rhs.layer );
76334     }
76335 
operator !=VULKAN_HPP_NAMESPACE::RectLayerKHR76336     bool operator!=( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76337     {
76338       return !operator==( rhs );
76339     }
76340 #endif
76341 
76342 
76343 
76344   public:
76345     VULKAN_HPP_NAMESPACE::Offset2D offset = {};
76346     VULKAN_HPP_NAMESPACE::Extent2D extent = {};
76347     uint32_t layer = {};
76348 
76349   };
76350   static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" );
76351   static_assert( std::is_standard_layout<RectLayerKHR>::value, "struct wrapper is not a standard layout!" );
76352 
76353   struct PresentRegionKHR
76354   {
76355 
76356 
76357 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR76358     VULKAN_HPP_CONSTEXPR PresentRegionKHR(uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ = {}) VULKAN_HPP_NOEXCEPT
76359     : rectangleCount( rectangleCount_ ), pRectangles( pRectangles_ )
76360     {}
76361 
76362     VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76363 
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR76364     PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76365     {
76366       *this = rhs;
76367     }
76368 
76369 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR76370     PresentRegionKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ )
76371     : rectangleCount( static_cast<uint32_t>( rectangles_.size() ) ), pRectangles( rectangles_.data() )
76372     {}
76373 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76374 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76375 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR76376     PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76377     {
76378       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionKHR const *>( &rhs );
76379       return *this;
76380     }
76381 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR76382     PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76383     {
76384       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentRegionKHR ) );
76385       return *this;
76386     }
76387 
setRectangleCountVULKAN_HPP_NAMESPACE::PresentRegionKHR76388     PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT
76389     {
76390       rectangleCount = rectangleCount_;
76391       return *this;
76392     }
76393 
setPRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR76394     PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ ) VULKAN_HPP_NOEXCEPT
76395     {
76396       pRectangles = pRectangles_;
76397       return *this;
76398     }
76399 
76400 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR76401     PresentRegionKHR & setRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ ) VULKAN_HPP_NOEXCEPT
76402     {
76403       rectangleCount = static_cast<uint32_t>( rectangles_.size() );
76404       pRectangles = rectangles_.data();
76405       return *this;
76406     }
76407 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76408 
76409 
operator VkPresentRegionKHR const&VULKAN_HPP_NAMESPACE::PresentRegionKHR76410     operator VkPresentRegionKHR const&() const VULKAN_HPP_NOEXCEPT
76411     {
76412       return *reinterpret_cast<const VkPresentRegionKHR*>( this );
76413     }
76414 
operator VkPresentRegionKHR&VULKAN_HPP_NAMESPACE::PresentRegionKHR76415     operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
76416     {
76417       return *reinterpret_cast<VkPresentRegionKHR*>( this );
76418     }
76419 
76420 
76421 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76422     auto operator<=>( PresentRegionKHR const& ) const = default;
76423 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionKHR76424     bool operator==( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76425     {
76426       return ( rectangleCount == rhs.rectangleCount )
76427           && ( pRectangles == rhs.pRectangles );
76428     }
76429 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionKHR76430     bool operator!=( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76431     {
76432       return !operator==( rhs );
76433     }
76434 #endif
76435 
76436 
76437 
76438   public:
76439     uint32_t rectangleCount = {};
76440     const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles = {};
76441 
76442   };
76443   static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" );
76444   static_assert( std::is_standard_layout<PresentRegionKHR>::value, "struct wrapper is not a standard layout!" );
76445 
76446   struct PresentRegionsKHR
76447   {
76448     static const bool allowDuplicate = false;
76449     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR;
76450 
76451 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR76452     VULKAN_HPP_CONSTEXPR PresentRegionsKHR(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT
76453     : swapchainCount( swapchainCount_ ), pRegions( pRegions_ )
76454     {}
76455 
76456     VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76457 
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR76458     PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76459     {
76460       *this = rhs;
76461     }
76462 
76463 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR76464     PresentRegionsKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ )
76465     : swapchainCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
76466     {}
76467 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76468 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76469 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR76470     PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76471     {
76472       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionsKHR const *>( &rhs );
76473       return *this;
76474     }
76475 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR76476     PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
76477     {
76478       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentRegionsKHR ) );
76479       return *this;
76480     }
76481 
setPNextVULKAN_HPP_NAMESPACE::PresentRegionsKHR76482     PresentRegionsKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76483     {
76484       pNext = pNext_;
76485       return *this;
76486     }
76487 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentRegionsKHR76488     PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
76489     {
76490       swapchainCount = swapchainCount_;
76491       return *this;
76492     }
76493 
setPRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR76494     PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ ) VULKAN_HPP_NOEXCEPT
76495     {
76496       pRegions = pRegions_;
76497       return *this;
76498     }
76499 
76500 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR76501     PresentRegionsKHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
76502     {
76503       swapchainCount = static_cast<uint32_t>( regions_.size() );
76504       pRegions = regions_.data();
76505       return *this;
76506     }
76507 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76508 
76509 
operator VkPresentRegionsKHR const&VULKAN_HPP_NAMESPACE::PresentRegionsKHR76510     operator VkPresentRegionsKHR const&() const VULKAN_HPP_NOEXCEPT
76511     {
76512       return *reinterpret_cast<const VkPresentRegionsKHR*>( this );
76513     }
76514 
operator VkPresentRegionsKHR&VULKAN_HPP_NAMESPACE::PresentRegionsKHR76515     operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
76516     {
76517       return *reinterpret_cast<VkPresentRegionsKHR*>( this );
76518     }
76519 
76520 
76521 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76522     auto operator<=>( PresentRegionsKHR const& ) const = default;
76523 #else
operator ==VULKAN_HPP_NAMESPACE::PresentRegionsKHR76524     bool operator==( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76525     {
76526       return ( sType == rhs.sType )
76527           && ( pNext == rhs.pNext )
76528           && ( swapchainCount == rhs.swapchainCount )
76529           && ( pRegions == rhs.pRegions );
76530     }
76531 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionsKHR76532     bool operator!=( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
76533     {
76534       return !operator==( rhs );
76535     }
76536 #endif
76537 
76538 
76539 
76540   public:
76541     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR;
76542     const void* pNext = {};
76543     uint32_t swapchainCount = {};
76544     const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions = {};
76545 
76546   };
76547   static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" );
76548   static_assert( std::is_standard_layout<PresentRegionsKHR>::value, "struct wrapper is not a standard layout!" );
76549 
76550   template <>
76551   struct CppType<StructureType, StructureType::ePresentRegionsKHR>
76552   {
76553     using Type = PresentRegionsKHR;
76554   };
76555 
76556   struct PresentTimeGOOGLE
76557   {
76558 
76559 
76560 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76561     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}) VULKAN_HPP_NOEXCEPT
76562     : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ )
76563     {}
76564 
76565     VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76566 
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76567     PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76568     {
76569       *this = rhs;
76570     }
76571 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76572 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76573     PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76574     {
76575       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const *>( &rhs );
76576       return *this;
76577     }
76578 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76579     PresentTimeGOOGLE & operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76580     {
76581       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentTimeGOOGLE ) );
76582       return *this;
76583     }
76584 
setPresentIDVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76585     PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT
76586     {
76587       presentID = presentID_;
76588       return *this;
76589     }
76590 
setDesiredPresentTimeVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76591     PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT
76592     {
76593       desiredPresentTime = desiredPresentTime_;
76594       return *this;
76595     }
76596 
76597 
operator VkPresentTimeGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76598     operator VkPresentTimeGOOGLE const&() const VULKAN_HPP_NOEXCEPT
76599     {
76600       return *reinterpret_cast<const VkPresentTimeGOOGLE*>( this );
76601     }
76602 
operator VkPresentTimeGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76603     operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
76604     {
76605       return *reinterpret_cast<VkPresentTimeGOOGLE*>( this );
76606     }
76607 
76608 
76609 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76610     auto operator<=>( PresentTimeGOOGLE const& ) const = default;
76611 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76612     bool operator==( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76613     {
76614       return ( presentID == rhs.presentID )
76615           && ( desiredPresentTime == rhs.desiredPresentTime );
76616     }
76617 
operator !=VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE76618     bool operator!=( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76619     {
76620       return !operator==( rhs );
76621     }
76622 #endif
76623 
76624 
76625 
76626   public:
76627     uint32_t presentID = {};
76628     uint64_t desiredPresentTime = {};
76629 
76630   };
76631   static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" );
76632   static_assert( std::is_standard_layout<PresentTimeGOOGLE>::value, "struct wrapper is not a standard layout!" );
76633 
76634   struct PresentTimesInfoGOOGLE
76635   {
76636     static const bool allowDuplicate = false;
76637     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE;
76638 
76639 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76640     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ = {}) VULKAN_HPP_NOEXCEPT
76641     : swapchainCount( swapchainCount_ ), pTimes( pTimes_ )
76642     {}
76643 
76644     VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76645 
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76646     PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76647     {
76648       *this = rhs;
76649     }
76650 
76651 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76652     PresentTimesInfoGOOGLE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ )
76653     : swapchainCount( static_cast<uint32_t>( times_.size() ) ), pTimes( times_.data() )
76654     {}
76655 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76656 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76657 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76658     PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76659     {
76660       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const *>( &rhs );
76661       return *this;
76662     }
76663 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76664     PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
76665     {
76666       memcpy( static_cast<void *>( this ), &rhs, sizeof( PresentTimesInfoGOOGLE ) );
76667       return *this;
76668     }
76669 
setPNextVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76670     PresentTimesInfoGOOGLE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76671     {
76672       pNext = pNext_;
76673       return *this;
76674     }
76675 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76676     PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
76677     {
76678       swapchainCount = swapchainCount_;
76679       return *this;
76680     }
76681 
setPTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76682     PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ ) VULKAN_HPP_NOEXCEPT
76683     {
76684       pTimes = pTimes_;
76685       return *this;
76686     }
76687 
76688 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76689     PresentTimesInfoGOOGLE & setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ ) VULKAN_HPP_NOEXCEPT
76690     {
76691       swapchainCount = static_cast<uint32_t>( times_.size() );
76692       pTimes = times_.data();
76693       return *this;
76694     }
76695 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
76696 
76697 
operator VkPresentTimesInfoGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76698     operator VkPresentTimesInfoGOOGLE const&() const VULKAN_HPP_NOEXCEPT
76699     {
76700       return *reinterpret_cast<const VkPresentTimesInfoGOOGLE*>( this );
76701     }
76702 
operator VkPresentTimesInfoGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76703     operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
76704     {
76705       return *reinterpret_cast<VkPresentTimesInfoGOOGLE*>( this );
76706     }
76707 
76708 
76709 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76710     auto operator<=>( PresentTimesInfoGOOGLE const& ) const = default;
76711 #else
operator ==VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76712     bool operator==( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76713     {
76714       return ( sType == rhs.sType )
76715           && ( pNext == rhs.pNext )
76716           && ( swapchainCount == rhs.swapchainCount )
76717           && ( pTimes == rhs.pTimes );
76718     }
76719 
operator !=VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE76720     bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT
76721     {
76722       return !operator==( rhs );
76723     }
76724 #endif
76725 
76726 
76727 
76728   public:
76729     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
76730     const void* pNext = {};
76731     uint32_t swapchainCount = {};
76732     const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes = {};
76733 
76734   };
76735   static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" );
76736   static_assert( std::is_standard_layout<PresentTimesInfoGOOGLE>::value, "struct wrapper is not a standard layout!" );
76737 
76738   template <>
76739   struct CppType<StructureType, StructureType::ePresentTimesInfoGOOGLE>
76740   {
76741     using Type = PresentTimesInfoGOOGLE;
76742   };
76743 
76744   struct ProtectedSubmitInfo
76745   {
76746     static const bool allowDuplicate = false;
76747     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo;
76748 
76749 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76750     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo(VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}) VULKAN_HPP_NOEXCEPT
76751     : protectedSubmit( protectedSubmit_ )
76752     {}
76753 
76754     VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76755 
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76756     ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76757     {
76758       *this = rhs;
76759     }
76760 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76761 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76762     ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76763     {
76764       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const *>( &rhs );
76765       return *this;
76766     }
76767 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76768     ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
76769     {
76770       memcpy( static_cast<void *>( this ), &rhs, sizeof( ProtectedSubmitInfo ) );
76771       return *this;
76772     }
76773 
setPNextVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76774     ProtectedSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76775     {
76776       pNext = pNext_;
76777       return *this;
76778     }
76779 
setProtectedSubmitVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76780     ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT
76781     {
76782       protectedSubmit = protectedSubmit_;
76783       return *this;
76784     }
76785 
76786 
operator VkProtectedSubmitInfo const&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76787     operator VkProtectedSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
76788     {
76789       return *reinterpret_cast<const VkProtectedSubmitInfo*>( this );
76790     }
76791 
operator VkProtectedSubmitInfo&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76792     operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
76793     {
76794       return *reinterpret_cast<VkProtectedSubmitInfo*>( this );
76795     }
76796 
76797 
76798 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76799     auto operator<=>( ProtectedSubmitInfo const& ) const = default;
76800 #else
operator ==VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76801     bool operator==( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76802     {
76803       return ( sType == rhs.sType )
76804           && ( pNext == rhs.pNext )
76805           && ( protectedSubmit == rhs.protectedSubmit );
76806     }
76807 
operator !=VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo76808     bool operator!=( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
76809     {
76810       return !operator==( rhs );
76811     }
76812 #endif
76813 
76814 
76815 
76816   public:
76817     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo;
76818     const void* pNext = {};
76819     VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {};
76820 
76821   };
76822   static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" );
76823   static_assert( std::is_standard_layout<ProtectedSubmitInfo>::value, "struct wrapper is not a standard layout!" );
76824 
76825   template <>
76826   struct CppType<StructureType, StructureType::eProtectedSubmitInfo>
76827   {
76828     using Type = ProtectedSubmitInfo;
76829   };
76830 
76831   struct QueryPoolPerformanceQueryCreateInfoINTEL
76832   {
76833     static const bool allowDuplicate = false;
76834     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
76835 
76836 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76837     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual) VULKAN_HPP_NOEXCEPT
76838     : performanceCountersSampling( performanceCountersSampling_ )
76839     {}
76840 
76841     VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76842 
QueryPoolPerformanceQueryCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76843     QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
76844     {
76845       *this = rhs;
76846     }
76847 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76848 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76849     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
76850     {
76851       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs );
76852       return *this;
76853     }
76854 
operator =VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76855     QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
76856     {
76857       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) );
76858       return *this;
76859     }
76860 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76861     QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
76862     {
76863       pNext = pNext_;
76864       return *this;
76865     }
76866 
setPerformanceCountersSamplingVULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76867     QueryPoolPerformanceQueryCreateInfoINTEL & setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
76868     {
76869       performanceCountersSampling = performanceCountersSampling_;
76870       return *this;
76871     }
76872 
76873 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76874     operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&() const VULKAN_HPP_NOEXCEPT
76875     {
76876       return *reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
76877     }
76878 
operator VkQueryPoolPerformanceQueryCreateInfoINTEL&VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76879     operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
76880     {
76881       return *reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>( this );
76882     }
76883 
76884 
76885 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76886     auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const& ) const = default;
76887 #else
operator ==VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76888     bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
76889     {
76890       return ( sType == rhs.sType )
76891           && ( pNext == rhs.pNext )
76892           && ( performanceCountersSampling == rhs.performanceCountersSampling );
76893     }
76894 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL76895     bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT
76896     {
76897       return !operator==( rhs );
76898     }
76899 #endif
76900 
76901 
76902 
76903   public:
76904     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
76905     const void* pNext = {};
76906     VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual;
76907 
76908   };
76909   static_assert( sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) == sizeof( VkQueryPoolPerformanceQueryCreateInfoINTEL ), "struct and wrapper have different size!" );
76910   static_assert( std::is_standard_layout<QueryPoolPerformanceQueryCreateInfoINTEL>::value, "struct wrapper is not a standard layout!" );
76911 
76912   template <>
76913   struct CppType<StructureType, StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL>
76914   {
76915     using Type = QueryPoolPerformanceQueryCreateInfoINTEL;
76916   };
76917   using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
76918 
76919   struct QueueFamilyCheckpointPropertiesNV
76920   {
76921     static const bool allowDuplicate = false;
76922     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV;
76923 
76924 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76925     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV(VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {}) VULKAN_HPP_NOEXCEPT
76926     : checkpointExecutionStageMask( checkpointExecutionStageMask_ )
76927     {}
76928 
76929     VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
76930 
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76931     QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76932     {
76933       *this = rhs;
76934     }
76935 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
76936 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76937     QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76938     {
76939       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const *>( &rhs );
76940       return *this;
76941     }
76942 
operator =VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76943     QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
76944     {
76945       memcpy( static_cast<void *>( this ), &rhs, sizeof( QueueFamilyCheckpointPropertiesNV ) );
76946       return *this;
76947     }
76948 
76949 
operator VkQueueFamilyCheckpointPropertiesNV const&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76950     operator VkQueueFamilyCheckpointPropertiesNV const&() const VULKAN_HPP_NOEXCEPT
76951     {
76952       return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>( this );
76953     }
76954 
operator VkQueueFamilyCheckpointPropertiesNV&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76955     operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
76956     {
76957       return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>( this );
76958     }
76959 
76960 
76961 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
76962     auto operator<=>( QueueFamilyCheckpointPropertiesNV const& ) const = default;
76963 #else
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76964     bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76965     {
76966       return ( sType == rhs.sType )
76967           && ( pNext == rhs.pNext )
76968           && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
76969     }
76970 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV76971     bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT
76972     {
76973       return !operator==( rhs );
76974     }
76975 #endif
76976 
76977 
76978 
76979   public:
76980     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
76981     void* pNext = {};
76982     VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {};
76983 
76984   };
76985   static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" );
76986   static_assert( std::is_standard_layout<QueueFamilyCheckpointPropertiesNV>::value, "struct wrapper is not a standard layout!" );
76987 
76988   template <>
76989   struct CppType<StructureType, StructureType::eQueueFamilyCheckpointPropertiesNV>
76990   {
76991     using Type = QueueFamilyCheckpointPropertiesNV;
76992   };
76993 
76994   struct RenderPassAttachmentBeginInfo
76995   {
76996     static const bool allowDuplicate = false;
76997     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo;
76998 
76999 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77000     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo(uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}) VULKAN_HPP_NOEXCEPT
77001     : attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ )
77002     {}
77003 
77004     VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77005 
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77006     RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77007     {
77008       *this = rhs;
77009     }
77010 
77011 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassAttachmentBeginInfoVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77012     RenderPassAttachmentBeginInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ )
77013     : attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() )
77014     {}
77015 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77016 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77017 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77018     RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77019     {
77020       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const *>( &rhs );
77021       return *this;
77022     }
77023 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77024     RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77025     {
77026       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassAttachmentBeginInfo ) );
77027       return *this;
77028     }
77029 
setPNextVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77030     RenderPassAttachmentBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77031     {
77032       pNext = pNext_;
77033       return *this;
77034     }
77035 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77036     RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
77037     {
77038       attachmentCount = attachmentCount_;
77039       return *this;
77040     }
77041 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77042     RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT
77043     {
77044       pAttachments = pAttachments_;
77045       return *this;
77046     }
77047 
77048 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77049     RenderPassAttachmentBeginInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
77050     {
77051       attachmentCount = static_cast<uint32_t>( attachments_.size() );
77052       pAttachments = attachments_.data();
77053       return *this;
77054     }
77055 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77056 
77057 
operator VkRenderPassAttachmentBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77058     operator VkRenderPassAttachmentBeginInfo const&() const VULKAN_HPP_NOEXCEPT
77059     {
77060       return *reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>( this );
77061     }
77062 
operator VkRenderPassAttachmentBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77063     operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
77064     {
77065       return *reinterpret_cast<VkRenderPassAttachmentBeginInfo*>( this );
77066     }
77067 
77068 
77069 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77070     auto operator<=>( RenderPassAttachmentBeginInfo const& ) const = default;
77071 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77072     bool operator==( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77073     {
77074       return ( sType == rhs.sType )
77075           && ( pNext == rhs.pNext )
77076           && ( attachmentCount == rhs.attachmentCount )
77077           && ( pAttachments == rhs.pAttachments );
77078     }
77079 
operator !=VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo77080     bool operator!=( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77081     {
77082       return !operator==( rhs );
77083     }
77084 #endif
77085 
77086 
77087 
77088   public:
77089     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo;
77090     const void* pNext = {};
77091     uint32_t attachmentCount = {};
77092     const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {};
77093 
77094   };
77095   static_assert( sizeof( RenderPassAttachmentBeginInfo ) == sizeof( VkRenderPassAttachmentBeginInfo ), "struct and wrapper have different size!" );
77096   static_assert( std::is_standard_layout<RenderPassAttachmentBeginInfo>::value, "struct wrapper is not a standard layout!" );
77097 
77098   template <>
77099   struct CppType<StructureType, StructureType::eRenderPassAttachmentBeginInfo>
77100   {
77101     using Type = RenderPassAttachmentBeginInfo;
77102   };
77103   using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
77104 
77105   struct RenderPassFragmentDensityMapCreateInfoEXT
77106   {
77107     static const bool allowDuplicate = false;
77108     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
77109 
77110 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77111     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT(VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {}) VULKAN_HPP_NOEXCEPT
77112     : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
77113     {}
77114 
77115     VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77116 
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77117     RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77118     {
77119       *this = rhs;
77120     }
77121 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77122 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77123     RenderPassFragmentDensityMapCreateInfoEXT & operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77124     {
77125       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs );
77126       return *this;
77127     }
77128 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77129     RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77130     {
77131       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) );
77132       return *this;
77133     }
77134 
setPNextVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77135     RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77136     {
77137       pNext = pNext_;
77138       return *this;
77139     }
77140 
setFragmentDensityMapAttachmentVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77141     RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT
77142     {
77143       fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
77144       return *this;
77145     }
77146 
77147 
operator VkRenderPassFragmentDensityMapCreateInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77148     operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77149     {
77150       return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
77151     }
77152 
operator VkRenderPassFragmentDensityMapCreateInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77153     operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
77154     {
77155       return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
77156     }
77157 
77158 
77159 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77160     auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const& ) const = default;
77161 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77162     bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77163     {
77164       return ( sType == rhs.sType )
77165           && ( pNext == rhs.pNext )
77166           && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
77167     }
77168 
operator !=VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT77169     bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77170     {
77171       return !operator==( rhs );
77172     }
77173 #endif
77174 
77175 
77176 
77177   public:
77178     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
77179     const void* pNext = {};
77180     VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {};
77181 
77182   };
77183   static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" );
77184   static_assert( std::is_standard_layout<RenderPassFragmentDensityMapCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
77185 
77186   template <>
77187   struct CppType<StructureType, StructureType::eRenderPassFragmentDensityMapCreateInfoEXT>
77188   {
77189     using Type = RenderPassFragmentDensityMapCreateInfoEXT;
77190   };
77191 
77192   struct RenderPassInputAttachmentAspectCreateInfo
77193   {
77194     static const bool allowDuplicate = false;
77195     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
77196 
77197 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77198     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo(uint32_t aspectReferenceCount_ = {}, const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ = {}) VULKAN_HPP_NOEXCEPT
77199     : aspectReferenceCount( aspectReferenceCount_ ), pAspectReferences( pAspectReferences_ )
77200     {}
77201 
77202     VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77203 
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77204     RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77205     {
77206       *this = rhs;
77207     }
77208 
77209 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77210     RenderPassInputAttachmentAspectCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ )
77211     : aspectReferenceCount( static_cast<uint32_t>( aspectReferences_.size() ) ), pAspectReferences( aspectReferences_.data() )
77212     {}
77213 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77214 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77215 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77216     RenderPassInputAttachmentAspectCreateInfo & operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77217     {
77218       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const *>( &rhs );
77219       return *this;
77220     }
77221 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77222     RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77223     {
77224       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassInputAttachmentAspectCreateInfo ) );
77225       return *this;
77226     }
77227 
setPNextVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77228     RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77229     {
77230       pNext = pNext_;
77231       return *this;
77232     }
77233 
setAspectReferenceCountVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77234     RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT
77235     {
77236       aspectReferenceCount = aspectReferenceCount_;
77237       return *this;
77238     }
77239 
setPAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77240     RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
77241     {
77242       pAspectReferences = pAspectReferences_;
77243       return *this;
77244     }
77245 
77246 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77247     RenderPassInputAttachmentAspectCreateInfo & setAspectReferences( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ ) VULKAN_HPP_NOEXCEPT
77248     {
77249       aspectReferenceCount = static_cast<uint32_t>( aspectReferences_.size() );
77250       pAspectReferences = aspectReferences_.data();
77251       return *this;
77252     }
77253 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77254 
77255 
operator VkRenderPassInputAttachmentAspectCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77256     operator VkRenderPassInputAttachmentAspectCreateInfo const&() const VULKAN_HPP_NOEXCEPT
77257     {
77258       return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>( this );
77259     }
77260 
operator VkRenderPassInputAttachmentAspectCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77261     operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
77262     {
77263       return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>( this );
77264     }
77265 
77266 
77267 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77268     auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const& ) const = default;
77269 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77270     bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77271     {
77272       return ( sType == rhs.sType )
77273           && ( pNext == rhs.pNext )
77274           && ( aspectReferenceCount == rhs.aspectReferenceCount )
77275           && ( pAspectReferences == rhs.pAspectReferences );
77276     }
77277 
operator !=VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo77278     bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77279     {
77280       return !operator==( rhs );
77281     }
77282 #endif
77283 
77284 
77285 
77286   public:
77287     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
77288     const void* pNext = {};
77289     uint32_t aspectReferenceCount = {};
77290     const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences = {};
77291 
77292   };
77293   static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" );
77294   static_assert( std::is_standard_layout<RenderPassInputAttachmentAspectCreateInfo>::value, "struct wrapper is not a standard layout!" );
77295 
77296   template <>
77297   struct CppType<StructureType, StructureType::eRenderPassInputAttachmentAspectCreateInfo>
77298   {
77299     using Type = RenderPassInputAttachmentAspectCreateInfo;
77300   };
77301   using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
77302 
77303   struct RenderPassMultiviewCreateInfo
77304   {
77305     static const bool allowDuplicate = false;
77306     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo;
77307 
77308 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77309     VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo(uint32_t subpassCount_ = {}, const uint32_t* pViewMasks_ = {}, uint32_t dependencyCount_ = {}, const int32_t* pViewOffsets_ = {}, uint32_t correlationMaskCount_ = {}, const uint32_t* pCorrelationMasks_ = {}) VULKAN_HPP_NOEXCEPT
77310     : subpassCount( subpassCount_ ), pViewMasks( pViewMasks_ ), dependencyCount( dependencyCount_ ), pViewOffsets( pViewOffsets_ ), correlationMaskCount( correlationMaskCount_ ), pCorrelationMasks( pCorrelationMasks_ )
77311     {}
77312 
77313     VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77314 
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77315     RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77316     {
77317       *this = rhs;
77318     }
77319 
77320 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77321     RenderPassMultiviewCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ = {} )
77322     : subpassCount( static_cast<uint32_t>( viewMasks_.size() ) ), pViewMasks( viewMasks_.data() ), dependencyCount( static_cast<uint32_t>( viewOffsets_.size() ) ), pViewOffsets( viewOffsets_.data() ), correlationMaskCount( static_cast<uint32_t>( correlationMasks_.size() ) ), pCorrelationMasks( correlationMasks_.data() )
77323     {}
77324 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77325 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77326 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77327     RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77328     {
77329       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const *>( &rhs );
77330       return *this;
77331     }
77332 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77333     RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77334     {
77335       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassMultiviewCreateInfo ) );
77336       return *this;
77337     }
77338 
setPNextVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77339     RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77340     {
77341       pNext = pNext_;
77342       return *this;
77343     }
77344 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77345     RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
77346     {
77347       subpassCount = subpassCount_;
77348       return *this;
77349     }
77350 
setPViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77351     RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ ) VULKAN_HPP_NOEXCEPT
77352     {
77353       pViewMasks = pViewMasks_;
77354       return *this;
77355     }
77356 
77357 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77358     RenderPassMultiviewCreateInfo & setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_ ) VULKAN_HPP_NOEXCEPT
77359     {
77360       subpassCount = static_cast<uint32_t>( viewMasks_.size() );
77361       pViewMasks = viewMasks_.data();
77362       return *this;
77363     }
77364 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77365 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77366     RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
77367     {
77368       dependencyCount = dependencyCount_;
77369       return *this;
77370     }
77371 
setPViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77372     RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ ) VULKAN_HPP_NOEXCEPT
77373     {
77374       pViewOffsets = pViewOffsets_;
77375       return *this;
77376     }
77377 
77378 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77379     RenderPassMultiviewCreateInfo & setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT
77380     {
77381       dependencyCount = static_cast<uint32_t>( viewOffsets_.size() );
77382       pViewOffsets = viewOffsets_.data();
77383       return *this;
77384     }
77385 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77386 
setCorrelationMaskCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77387     RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT
77388     {
77389       correlationMaskCount = correlationMaskCount_;
77390       return *this;
77391     }
77392 
setPCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77393     RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT
77394     {
77395       pCorrelationMasks = pCorrelationMasks_;
77396       return *this;
77397     }
77398 
77399 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77400     RenderPassMultiviewCreateInfo & setCorrelationMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT
77401     {
77402       correlationMaskCount = static_cast<uint32_t>( correlationMasks_.size() );
77403       pCorrelationMasks = correlationMasks_.data();
77404       return *this;
77405     }
77406 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77407 
77408 
operator VkRenderPassMultiviewCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77409     operator VkRenderPassMultiviewCreateInfo const&() const VULKAN_HPP_NOEXCEPT
77410     {
77411       return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>( this );
77412     }
77413 
operator VkRenderPassMultiviewCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77414     operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
77415     {
77416       return *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>( this );
77417     }
77418 
77419 
77420 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77421     auto operator<=>( RenderPassMultiviewCreateInfo const& ) const = default;
77422 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77423     bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77424     {
77425       return ( sType == rhs.sType )
77426           && ( pNext == rhs.pNext )
77427           && ( subpassCount == rhs.subpassCount )
77428           && ( pViewMasks == rhs.pViewMasks )
77429           && ( dependencyCount == rhs.dependencyCount )
77430           && ( pViewOffsets == rhs.pViewOffsets )
77431           && ( correlationMaskCount == rhs.correlationMaskCount )
77432           && ( pCorrelationMasks == rhs.pCorrelationMasks );
77433     }
77434 
operator !=VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo77435     bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77436     {
77437       return !operator==( rhs );
77438     }
77439 #endif
77440 
77441 
77442 
77443   public:
77444     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
77445     const void* pNext = {};
77446     uint32_t subpassCount = {};
77447     const uint32_t* pViewMasks = {};
77448     uint32_t dependencyCount = {};
77449     const int32_t* pViewOffsets = {};
77450     uint32_t correlationMaskCount = {};
77451     const uint32_t* pCorrelationMasks = {};
77452 
77453   };
77454   static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" );
77455   static_assert( std::is_standard_layout<RenderPassMultiviewCreateInfo>::value, "struct wrapper is not a standard layout!" );
77456 
77457   template <>
77458   struct CppType<StructureType, StructureType::eRenderPassMultiviewCreateInfo>
77459   {
77460     using Type = RenderPassMultiviewCreateInfo;
77461   };
77462   using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
77463 
77464   struct SubpassSampleLocationsEXT
77465   {
77466 
77467 
77468 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77469     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT(uint32_t subpassIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT
77470     : subpassIndex( subpassIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ )
77471     {}
77472 
77473     VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77474 
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77475     SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77476     {
77477       *this = rhs;
77478     }
77479 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77480 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77481     SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77482     {
77483       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const *>( &rhs );
77484       return *this;
77485     }
77486 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77487     SubpassSampleLocationsEXT & operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77488     {
77489       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassSampleLocationsEXT ) );
77490       return *this;
77491     }
77492 
setSubpassIndexVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77493     SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT
77494     {
77495       subpassIndex = subpassIndex_;
77496       return *this;
77497     }
77498 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77499     SubpassSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
77500     {
77501       sampleLocationsInfo = sampleLocationsInfo_;
77502       return *this;
77503     }
77504 
77505 
operator VkSubpassSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77506     operator VkSubpassSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT
77507     {
77508       return *reinterpret_cast<const VkSubpassSampleLocationsEXT*>( this );
77509     }
77510 
operator VkSubpassSampleLocationsEXT&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77511     operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
77512     {
77513       return *reinterpret_cast<VkSubpassSampleLocationsEXT*>( this );
77514     }
77515 
77516 
77517 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77518     auto operator<=>( SubpassSampleLocationsEXT const& ) const = default;
77519 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77520     bool operator==( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77521     {
77522       return ( subpassIndex == rhs.subpassIndex )
77523           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
77524     }
77525 
operator !=VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT77526     bool operator!=( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77527     {
77528       return !operator==( rhs );
77529     }
77530 #endif
77531 
77532 
77533 
77534   public:
77535     uint32_t subpassIndex = {};
77536     VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
77537 
77538   };
77539   static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" );
77540   static_assert( std::is_standard_layout<SubpassSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
77541 
77542   struct RenderPassSampleLocationsBeginInfoEXT
77543   {
77544     static const bool allowDuplicate = false;
77545     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
77546 
77547 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77548     VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT(uint32_t attachmentInitialSampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ = {}, uint32_t postSubpassSampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT
77549     : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ ), pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ ), postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ ), pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
77550     {}
77551 
77552     VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77553 
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77554     RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77555     {
77556       *this = rhs;
77557     }
77558 
77559 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77560     RenderPassSampleLocationsBeginInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ = {} )
77561     : attachmentInitialSampleLocationsCount( static_cast<uint32_t>( attachmentInitialSampleLocations_.size() ) ), pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() ), postSubpassSampleLocationsCount( static_cast<uint32_t>( postSubpassSampleLocations_.size() ) ), pPostSubpassSampleLocations( postSubpassSampleLocations_.data() )
77562     {}
77563 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77564 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77565 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77566     RenderPassSampleLocationsBeginInfoEXT & operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77567     {
77568       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const *>( &rhs );
77569       return *this;
77570     }
77571 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77572     RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77573     {
77574       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassSampleLocationsBeginInfoEXT ) );
77575       return *this;
77576     }
77577 
setPNextVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77578     RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77579     {
77580       pNext = pNext_;
77581       return *this;
77582     }
77583 
setAttachmentInitialSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77584     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
77585     {
77586       attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
77587       return *this;
77588     }
77589 
setPAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77590     RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77591     {
77592       pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
77593       return *this;
77594     }
77595 
77596 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77597     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77598     {
77599       attachmentInitialSampleLocationsCount = static_cast<uint32_t>( attachmentInitialSampleLocations_.size() );
77600       pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data();
77601       return *this;
77602     }
77603 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77604 
setPostSubpassSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77605     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
77606     {
77607       postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
77608       return *this;
77609     }
77610 
setPPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77611     RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77612     {
77613       pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
77614       return *this;
77615     }
77616 
77617 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77618     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
77619     {
77620       postSubpassSampleLocationsCount = static_cast<uint32_t>( postSubpassSampleLocations_.size() );
77621       pPostSubpassSampleLocations = postSubpassSampleLocations_.data();
77622       return *this;
77623     }
77624 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
77625 
77626 
operator VkRenderPassSampleLocationsBeginInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77627     operator VkRenderPassSampleLocationsBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77628     {
77629       return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>( this );
77630     }
77631 
operator VkRenderPassSampleLocationsBeginInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77632     operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
77633     {
77634       return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>( this );
77635     }
77636 
77637 
77638 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77639     auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const& ) const = default;
77640 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77641     bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77642     {
77643       return ( sType == rhs.sType )
77644           && ( pNext == rhs.pNext )
77645           && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount )
77646           && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations )
77647           && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount )
77648           && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
77649     }
77650 
operator !=VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT77651     bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
77652     {
77653       return !operator==( rhs );
77654     }
77655 #endif
77656 
77657 
77658 
77659   public:
77660     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
77661     const void* pNext = {};
77662     uint32_t attachmentInitialSampleLocationsCount = {};
77663     const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations = {};
77664     uint32_t postSubpassSampleLocationsCount = {};
77665     const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations = {};
77666 
77667   };
77668   static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" );
77669   static_assert( std::is_standard_layout<RenderPassSampleLocationsBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
77670 
77671   template <>
77672   struct CppType<StructureType, StructureType::eRenderPassSampleLocationsBeginInfoEXT>
77673   {
77674     using Type = RenderPassSampleLocationsBeginInfoEXT;
77675   };
77676 
77677   struct RenderPassTransformBeginInfoQCOM
77678   {
77679     static const bool allowDuplicate = false;
77680     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM;
77681 
77682 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77683     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT
77684     : transform( transform_ )
77685     {}
77686 
77687     VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77688 
RenderPassTransformBeginInfoQCOMVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77689     RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
77690     {
77691       *this = rhs;
77692     }
77693 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77694 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77695     RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
77696     {
77697       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const *>( &rhs );
77698       return *this;
77699     }
77700 
operator =VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77701     RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
77702     {
77703       memcpy( static_cast<void *>( this ), &rhs, sizeof( RenderPassTransformBeginInfoQCOM ) );
77704       return *this;
77705     }
77706 
setPNextVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77707     RenderPassTransformBeginInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
77708     {
77709       pNext = pNext_;
77710       return *this;
77711     }
77712 
setTransformVULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77713     RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
77714     {
77715       transform = transform_;
77716       return *this;
77717     }
77718 
77719 
operator VkRenderPassTransformBeginInfoQCOM const&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77720     operator VkRenderPassTransformBeginInfoQCOM const&() const VULKAN_HPP_NOEXCEPT
77721     {
77722       return *reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>( this );
77723     }
77724 
operator VkRenderPassTransformBeginInfoQCOM&VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77725     operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
77726     {
77727       return *reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>( this );
77728     }
77729 
77730 
77731 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77732     auto operator<=>( RenderPassTransformBeginInfoQCOM const& ) const = default;
77733 #else
operator ==VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77734     bool operator==( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
77735     {
77736       return ( sType == rhs.sType )
77737           && ( pNext == rhs.pNext )
77738           && ( transform == rhs.transform );
77739     }
77740 
operator !=VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM77741     bool operator!=( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT
77742     {
77743       return !operator==( rhs );
77744     }
77745 #endif
77746 
77747 
77748 
77749   public:
77750     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM;
77751     void* pNext = {};
77752     VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
77753 
77754   };
77755   static_assert( sizeof( RenderPassTransformBeginInfoQCOM ) == sizeof( VkRenderPassTransformBeginInfoQCOM ), "struct and wrapper have different size!" );
77756   static_assert( std::is_standard_layout<RenderPassTransformBeginInfoQCOM>::value, "struct wrapper is not a standard layout!" );
77757 
77758   template <>
77759   struct CppType<StructureType, StructureType::eRenderPassTransformBeginInfoQCOM>
77760   {
77761     using Type = RenderPassTransformBeginInfoQCOM;
77762   };
77763 
77764   struct SamplerCustomBorderColorCreateInfoEXT
77765   {
77766     static const bool allowDuplicate = false;
77767     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
77768 
77769 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77770     SamplerCustomBorderColorCreateInfoEXT(VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT
77771     : customBorderColor( customBorderColor_ ), format( format_ )
77772     {}
77773 
77774     SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77775 
SamplerCustomBorderColorCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77776     SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77777     {
77778       *this = rhs;
77779     }
77780 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77781 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77782     SamplerCustomBorderColorCreateInfoEXT & operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77783     {
77784       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT const *>( &rhs );
77785       return *this;
77786     }
77787 
operator =VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77788     SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
77789     {
77790       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerCustomBorderColorCreateInfoEXT ) );
77791       return *this;
77792     }
77793 
setPNextVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77794     SamplerCustomBorderColorCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77795     {
77796       pNext = pNext_;
77797       return *this;
77798     }
77799 
setCustomBorderColorVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77800     SamplerCustomBorderColorCreateInfoEXT & setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
77801     {
77802       customBorderColor = customBorderColor_;
77803       return *this;
77804     }
77805 
setFormatVULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77806     SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
77807     {
77808       format = format_;
77809       return *this;
77810     }
77811 
77812 
operator VkSamplerCustomBorderColorCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77813     operator VkSamplerCustomBorderColorCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
77814     {
77815       return *reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>( this );
77816     }
77817 
operator VkSamplerCustomBorderColorCreateInfoEXT&VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT77818     operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
77819     {
77820       return *reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>( this );
77821     }
77822 
77823 
77824 
77825 
77826   public:
77827     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
77828     const void* pNext = {};
77829     VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {};
77830     VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
77831 
77832   };
77833   static_assert( sizeof( SamplerCustomBorderColorCreateInfoEXT ) == sizeof( VkSamplerCustomBorderColorCreateInfoEXT ), "struct and wrapper have different size!" );
77834   static_assert( std::is_standard_layout<SamplerCustomBorderColorCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
77835 
77836   template <>
77837   struct CppType<StructureType, StructureType::eSamplerCustomBorderColorCreateInfoEXT>
77838   {
77839     using Type = SamplerCustomBorderColorCreateInfoEXT;
77840   };
77841 
77842   struct SamplerReductionModeCreateInfo
77843   {
77844     static const bool allowDuplicate = false;
77845     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo;
77846 
77847 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77848     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo(VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage) VULKAN_HPP_NOEXCEPT
77849     : reductionMode( reductionMode_ )
77850     {}
77851 
77852     VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77853 
SamplerReductionModeCreateInfoVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77854     SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77855     {
77856       *this = rhs;
77857     }
77858 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77859 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77860     SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77861     {
77862       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const *>( &rhs );
77863       return *this;
77864     }
77865 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77866     SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
77867     {
77868       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerReductionModeCreateInfo ) );
77869       return *this;
77870     }
77871 
setPNextVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77872     SamplerReductionModeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
77873     {
77874       pNext = pNext_;
77875       return *this;
77876     }
77877 
setReductionModeVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77878     SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT
77879     {
77880       reductionMode = reductionMode_;
77881       return *this;
77882     }
77883 
77884 
operator VkSamplerReductionModeCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77885     operator VkSamplerReductionModeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
77886     {
77887       return *reinterpret_cast<const VkSamplerReductionModeCreateInfo*>( this );
77888     }
77889 
operator VkSamplerReductionModeCreateInfo&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77890     operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
77891     {
77892       return *reinterpret_cast<VkSamplerReductionModeCreateInfo*>( this );
77893     }
77894 
77895 
77896 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77897     auto operator<=>( SamplerReductionModeCreateInfo const& ) const = default;
77898 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77899     bool operator==( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77900     {
77901       return ( sType == rhs.sType )
77902           && ( pNext == rhs.pNext )
77903           && ( reductionMode == rhs.reductionMode );
77904     }
77905 
operator !=VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo77906     bool operator!=( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
77907     {
77908       return !operator==( rhs );
77909     }
77910 #endif
77911 
77912 
77913 
77914   public:
77915     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo;
77916     const void* pNext = {};
77917     VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage;
77918 
77919   };
77920   static_assert( sizeof( SamplerReductionModeCreateInfo ) == sizeof( VkSamplerReductionModeCreateInfo ), "struct and wrapper have different size!" );
77921   static_assert( std::is_standard_layout<SamplerReductionModeCreateInfo>::value, "struct wrapper is not a standard layout!" );
77922 
77923   template <>
77924   struct CppType<StructureType, StructureType::eSamplerReductionModeCreateInfo>
77925   {
77926     using Type = SamplerReductionModeCreateInfo;
77927   };
77928   using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
77929 
77930   struct SamplerYcbcrConversionImageFormatProperties
77931   {
77932     static const bool allowDuplicate = false;
77933     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
77934 
77935 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77936     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties(uint32_t combinedImageSamplerDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT
77937     : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
77938     {}
77939 
77940     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
77941 
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77942     SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77943     {
77944       *this = rhs;
77945     }
77946 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
77947 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77948     SamplerYcbcrConversionImageFormatProperties & operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77949     {
77950       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const *>( &rhs );
77951       return *this;
77952     }
77953 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77954     SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
77955     {
77956       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerYcbcrConversionImageFormatProperties ) );
77957       return *this;
77958     }
77959 
77960 
operator VkSamplerYcbcrConversionImageFormatProperties const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77961     operator VkSamplerYcbcrConversionImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT
77962     {
77963       return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>( this );
77964     }
77965 
operator VkSamplerYcbcrConversionImageFormatProperties&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77966     operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
77967     {
77968       return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>( this );
77969     }
77970 
77971 
77972 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
77973     auto operator<=>( SamplerYcbcrConversionImageFormatProperties const& ) const = default;
77974 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77975     bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
77976     {
77977       return ( sType == rhs.sType )
77978           && ( pNext == rhs.pNext )
77979           && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
77980     }
77981 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties77982     bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT
77983     {
77984       return !operator==( rhs );
77985     }
77986 #endif
77987 
77988 
77989 
77990   public:
77991     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
77992     void* pNext = {};
77993     uint32_t combinedImageSamplerDescriptorCount = {};
77994 
77995   };
77996   static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" );
77997   static_assert( std::is_standard_layout<SamplerYcbcrConversionImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
77998 
77999   template <>
78000   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionImageFormatProperties>
78001   {
78002     using Type = SamplerYcbcrConversionImageFormatProperties;
78003   };
78004   using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
78005 
78006   struct SamplerYcbcrConversionInfo
78007   {
78008     static const bool allowDuplicate = false;
78009     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo;
78010 
78011 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78012     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {}) VULKAN_HPP_NOEXCEPT
78013     : conversion( conversion_ )
78014     {}
78015 
78016     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78017 
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78018     SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78019     {
78020       *this = rhs;
78021     }
78022 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78023 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78024     SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78025     {
78026       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const *>( &rhs );
78027       return *this;
78028     }
78029 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78030     SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78031     {
78032       memcpy( static_cast<void *>( this ), &rhs, sizeof( SamplerYcbcrConversionInfo ) );
78033       return *this;
78034     }
78035 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78036     SamplerYcbcrConversionInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78037     {
78038       pNext = pNext_;
78039       return *this;
78040     }
78041 
setConversionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78042     SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT
78043     {
78044       conversion = conversion_;
78045       return *this;
78046     }
78047 
78048 
operator VkSamplerYcbcrConversionInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78049     operator VkSamplerYcbcrConversionInfo const&() const VULKAN_HPP_NOEXCEPT
78050     {
78051       return *reinterpret_cast<const VkSamplerYcbcrConversionInfo*>( this );
78052     }
78053 
operator VkSamplerYcbcrConversionInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78054     operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
78055     {
78056       return *reinterpret_cast<VkSamplerYcbcrConversionInfo*>( this );
78057     }
78058 
78059 
78060 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78061     auto operator<=>( SamplerYcbcrConversionInfo const& ) const = default;
78062 #else
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78063     bool operator==( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78064     {
78065       return ( sType == rhs.sType )
78066           && ( pNext == rhs.pNext )
78067           && ( conversion == rhs.conversion );
78068     }
78069 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo78070     bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78071     {
78072       return !operator==( rhs );
78073     }
78074 #endif
78075 
78076 
78077 
78078   public:
78079     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
78080     const void* pNext = {};
78081     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {};
78082 
78083   };
78084   static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" );
78085   static_assert( std::is_standard_layout<SamplerYcbcrConversionInfo>::value, "struct wrapper is not a standard layout!" );
78086 
78087   template <>
78088   struct CppType<StructureType, StructureType::eSamplerYcbcrConversionInfo>
78089   {
78090     using Type = SamplerYcbcrConversionInfo;
78091   };
78092   using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
78093 
78094   struct SemaphoreTypeCreateInfo
78095   {
78096     static const bool allowDuplicate = false;
78097     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo;
78098 
78099 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78100     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary, uint64_t initialValue_ = {}) VULKAN_HPP_NOEXCEPT
78101     : semaphoreType( semaphoreType_ ), initialValue( initialValue_ )
78102     {}
78103 
78104     VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78105 
SemaphoreTypeCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78106     SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78107     {
78108       *this = rhs;
78109     }
78110 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78111 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78112     SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78113     {
78114       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const *>( &rhs );
78115       return *this;
78116     }
78117 
operator =VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78118     SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
78119     {
78120       memcpy( static_cast<void *>( this ), &rhs, sizeof( SemaphoreTypeCreateInfo ) );
78121       return *this;
78122     }
78123 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78124     SemaphoreTypeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78125     {
78126       pNext = pNext_;
78127       return *this;
78128     }
78129 
setSemaphoreTypeVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78130     SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT
78131     {
78132       semaphoreType = semaphoreType_;
78133       return *this;
78134     }
78135 
setInitialValueVULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78136     SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT
78137     {
78138       initialValue = initialValue_;
78139       return *this;
78140     }
78141 
78142 
operator VkSemaphoreTypeCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78143     operator VkSemaphoreTypeCreateInfo const&() const VULKAN_HPP_NOEXCEPT
78144     {
78145       return *reinterpret_cast<const VkSemaphoreTypeCreateInfo*>( this );
78146     }
78147 
operator VkSemaphoreTypeCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78148     operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
78149     {
78150       return *reinterpret_cast<VkSemaphoreTypeCreateInfo*>( this );
78151     }
78152 
78153 
78154 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78155     auto operator<=>( SemaphoreTypeCreateInfo const& ) const = default;
78156 #else
operator ==VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78157     bool operator==( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78158     {
78159       return ( sType == rhs.sType )
78160           && ( pNext == rhs.pNext )
78161           && ( semaphoreType == rhs.semaphoreType )
78162           && ( initialValue == rhs.initialValue );
78163     }
78164 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo78165     bool operator!=( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
78166     {
78167       return !operator==( rhs );
78168     }
78169 #endif
78170 
78171 
78172 
78173   public:
78174     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo;
78175     const void* pNext = {};
78176     VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary;
78177     uint64_t initialValue = {};
78178 
78179   };
78180   static_assert( sizeof( SemaphoreTypeCreateInfo ) == sizeof( VkSemaphoreTypeCreateInfo ), "struct and wrapper have different size!" );
78181   static_assert( std::is_standard_layout<SemaphoreTypeCreateInfo>::value, "struct wrapper is not a standard layout!" );
78182 
78183   template <>
78184   struct CppType<StructureType, StructureType::eSemaphoreTypeCreateInfo>
78185   {
78186     using Type = SemaphoreTypeCreateInfo;
78187   };
78188   using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
78189 
78190   struct SetStateFlagsIndirectCommandNV
78191   {
78192 
78193 
78194 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78195     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV(uint32_t data_ = {}) VULKAN_HPP_NOEXCEPT
78196     : data( data_ )
78197     {}
78198 
78199     VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78200 
SetStateFlagsIndirectCommandNVVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78201     SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
78202     {
78203       *this = rhs;
78204     }
78205 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78206 
operator =VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78207     SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
78208     {
78209       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const *>( &rhs );
78210       return *this;
78211     }
78212 
operator =VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78213     SetStateFlagsIndirectCommandNV & operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
78214     {
78215       memcpy( static_cast<void *>( this ), &rhs, sizeof( SetStateFlagsIndirectCommandNV ) );
78216       return *this;
78217     }
78218 
setDataVULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78219     SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT
78220     {
78221       data = data_;
78222       return *this;
78223     }
78224 
78225 
operator VkSetStateFlagsIndirectCommandNV const&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78226     operator VkSetStateFlagsIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT
78227     {
78228       return *reinterpret_cast<const VkSetStateFlagsIndirectCommandNV*>( this );
78229     }
78230 
operator VkSetStateFlagsIndirectCommandNV&VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78231     operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
78232     {
78233       return *reinterpret_cast<VkSetStateFlagsIndirectCommandNV*>( this );
78234     }
78235 
78236 
78237 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78238     auto operator<=>( SetStateFlagsIndirectCommandNV const& ) const = default;
78239 #else
operator ==VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78240     bool operator==( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
78241     {
78242       return ( data == rhs.data );
78243     }
78244 
operator !=VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV78245     bool operator!=( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT
78246     {
78247       return !operator==( rhs );
78248     }
78249 #endif
78250 
78251 
78252 
78253   public:
78254     uint32_t data = {};
78255 
78256   };
78257   static_assert( sizeof( SetStateFlagsIndirectCommandNV ) == sizeof( VkSetStateFlagsIndirectCommandNV ), "struct and wrapper have different size!" );
78258   static_assert( std::is_standard_layout<SetStateFlagsIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
78259 
78260   struct ShaderModuleValidationCacheCreateInfoEXT
78261   {
78262     static const bool allowDuplicate = false;
78263     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
78264 
78265 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78266     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {}) VULKAN_HPP_NOEXCEPT
78267     : validationCache( validationCache_ )
78268     {}
78269 
78270     VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78271 
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78272     ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78273     {
78274       *this = rhs;
78275     }
78276 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78277 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78278     ShaderModuleValidationCacheCreateInfoEXT & operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78279     {
78280       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs );
78281       return *this;
78282     }
78283 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78284     ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78285     {
78286       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderModuleValidationCacheCreateInfoEXT ) );
78287       return *this;
78288     }
78289 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78290     ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78291     {
78292       pNext = pNext_;
78293       return *this;
78294     }
78295 
setValidationCacheVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78296     ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
78297     {
78298       validationCache = validationCache_;
78299       return *this;
78300     }
78301 
78302 
operator VkShaderModuleValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78303     operator VkShaderModuleValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
78304     {
78305       return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>( this );
78306     }
78307 
operator VkShaderModuleValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78308     operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
78309     {
78310       return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>( this );
78311     }
78312 
78313 
78314 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78315     auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const& ) const = default;
78316 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78317     bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78318     {
78319       return ( sType == rhs.sType )
78320           && ( pNext == rhs.pNext )
78321           && ( validationCache == rhs.validationCache );
78322     }
78323 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT78324     bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78325     {
78326       return !operator==( rhs );
78327     }
78328 #endif
78329 
78330 
78331 
78332   public:
78333     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
78334     const void* pNext = {};
78335     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {};
78336 
78337   };
78338   static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
78339   static_assert( std::is_standard_layout<ShaderModuleValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
78340 
78341   template <>
78342   struct CppType<StructureType, StructureType::eShaderModuleValidationCacheCreateInfoEXT>
78343   {
78344     using Type = ShaderModuleValidationCacheCreateInfoEXT;
78345   };
78346 
78347   struct ShaderResourceUsageAMD
78348   {
78349 
78350 
78351 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78352     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD(uint32_t numUsedVgprs_ = {}, uint32_t numUsedSgprs_ = {}, uint32_t ldsSizePerLocalWorkGroup_ = {}, size_t ldsUsageSizeInBytes_ = {}, size_t scratchMemUsageInBytes_ = {}) VULKAN_HPP_NOEXCEPT
78353     : numUsedVgprs( numUsedVgprs_ ), numUsedSgprs( numUsedSgprs_ ), ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ ), ldsUsageSizeInBytes( ldsUsageSizeInBytes_ ), scratchMemUsageInBytes( scratchMemUsageInBytes_ )
78354     {}
78355 
78356     VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78357 
ShaderResourceUsageAMDVULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78358     ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78359     {
78360       *this = rhs;
78361     }
78362 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78363 
operator =VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78364     ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78365     {
78366       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const *>( &rhs );
78367       return *this;
78368     }
78369 
operator =VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78370     ShaderResourceUsageAMD & operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78371     {
78372       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderResourceUsageAMD ) );
78373       return *this;
78374     }
78375 
78376 
operator VkShaderResourceUsageAMD const&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78377     operator VkShaderResourceUsageAMD const&() const VULKAN_HPP_NOEXCEPT
78378     {
78379       return *reinterpret_cast<const VkShaderResourceUsageAMD*>( this );
78380     }
78381 
operator VkShaderResourceUsageAMD&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78382     operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
78383     {
78384       return *reinterpret_cast<VkShaderResourceUsageAMD*>( this );
78385     }
78386 
78387 
78388 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78389     auto operator<=>( ShaderResourceUsageAMD const& ) const = default;
78390 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78391     bool operator==( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78392     {
78393       return ( numUsedVgprs == rhs.numUsedVgprs )
78394           && ( numUsedSgprs == rhs.numUsedSgprs )
78395           && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup )
78396           && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes )
78397           && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
78398     }
78399 
operator !=VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD78400     bool operator!=( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78401     {
78402       return !operator==( rhs );
78403     }
78404 #endif
78405 
78406 
78407 
78408   public:
78409     uint32_t numUsedVgprs = {};
78410     uint32_t numUsedSgprs = {};
78411     uint32_t ldsSizePerLocalWorkGroup = {};
78412     size_t ldsUsageSizeInBytes = {};
78413     size_t scratchMemUsageInBytes = {};
78414 
78415   };
78416   static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" );
78417   static_assert( std::is_standard_layout<ShaderResourceUsageAMD>::value, "struct wrapper is not a standard layout!" );
78418 
78419   struct ShaderStatisticsInfoAMD
78420   {
78421 
78422 
78423 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78424     VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD(VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask_ = {}, VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage_ = {}, uint32_t numPhysicalVgprs_ = {}, uint32_t numPhysicalSgprs_ = {}, uint32_t numAvailableVgprs_ = {}, uint32_t numAvailableSgprs_ = {}, std::array<uint32_t,3> const& computeWorkGroupSize_ = {}) VULKAN_HPP_NOEXCEPT
78425     : shaderStageMask( shaderStageMask_ ), resourceUsage( resourceUsage_ ), numPhysicalVgprs( numPhysicalVgprs_ ), numPhysicalSgprs( numPhysicalSgprs_ ), numAvailableVgprs( numAvailableVgprs_ ), numAvailableSgprs( numAvailableSgprs_ ), computeWorkGroupSize( computeWorkGroupSize_ )
78426     {}
78427 
78428     VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78429 
ShaderStatisticsInfoAMDVULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78430     ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78431     {
78432       *this = rhs;
78433     }
78434 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78435 
operator =VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78436     ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78437     {
78438       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const *>( &rhs );
78439       return *this;
78440     }
78441 
operator =VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78442     ShaderStatisticsInfoAMD & operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
78443     {
78444       memcpy( static_cast<void *>( this ), &rhs, sizeof( ShaderStatisticsInfoAMD ) );
78445       return *this;
78446     }
78447 
78448 
operator VkShaderStatisticsInfoAMD const&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78449     operator VkShaderStatisticsInfoAMD const&() const VULKAN_HPP_NOEXCEPT
78450     {
78451       return *reinterpret_cast<const VkShaderStatisticsInfoAMD*>( this );
78452     }
78453 
operator VkShaderStatisticsInfoAMD&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78454     operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
78455     {
78456       return *reinterpret_cast<VkShaderStatisticsInfoAMD*>( this );
78457     }
78458 
78459 
78460 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78461     auto operator<=>( ShaderStatisticsInfoAMD const& ) const = default;
78462 #else
operator ==VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78463     bool operator==( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78464     {
78465       return ( shaderStageMask == rhs.shaderStageMask )
78466           && ( resourceUsage == rhs.resourceUsage )
78467           && ( numPhysicalVgprs == rhs.numPhysicalVgprs )
78468           && ( numPhysicalSgprs == rhs.numPhysicalSgprs )
78469           && ( numAvailableVgprs == rhs.numAvailableVgprs )
78470           && ( numAvailableSgprs == rhs.numAvailableSgprs )
78471           && ( computeWorkGroupSize == rhs.computeWorkGroupSize );
78472     }
78473 
operator !=VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD78474     bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
78475     {
78476       return !operator==( rhs );
78477     }
78478 #endif
78479 
78480 
78481 
78482   public:
78483     VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {};
78484     VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {};
78485     uint32_t numPhysicalVgprs = {};
78486     uint32_t numPhysicalSgprs = {};
78487     uint32_t numAvailableVgprs = {};
78488     uint32_t numAvailableSgprs = {};
78489     VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> computeWorkGroupSize = {};
78490 
78491   };
78492   static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" );
78493   static_assert( std::is_standard_layout<ShaderStatisticsInfoAMD>::value, "struct wrapper is not a standard layout!" );
78494 
78495   struct SharedPresentSurfaceCapabilitiesKHR
78496   {
78497     static const bool allowDuplicate = false;
78498     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
78499 
78500 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78501     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT
78502     : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
78503     {}
78504 
78505     VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78506 
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78507     SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78508     {
78509       *this = rhs;
78510     }
78511 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78512 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78513     SharedPresentSurfaceCapabilitiesKHR & operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78514     {
78515       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const *>( &rhs );
78516       return *this;
78517     }
78518 
operator =VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78519     SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
78520     {
78521       memcpy( static_cast<void *>( this ), &rhs, sizeof( SharedPresentSurfaceCapabilitiesKHR ) );
78522       return *this;
78523     }
78524 
78525 
operator VkSharedPresentSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78526     operator VkSharedPresentSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
78527     {
78528       return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>( this );
78529     }
78530 
operator VkSharedPresentSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78531     operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
78532     {
78533       return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>( this );
78534     }
78535 
78536 
78537 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78538     auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const& ) const = default;
78539 #else
operator ==VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78540     bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78541     {
78542       return ( sType == rhs.sType )
78543           && ( pNext == rhs.pNext )
78544           && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
78545     }
78546 
operator !=VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR78547     bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
78548     {
78549       return !operator==( rhs );
78550     }
78551 #endif
78552 
78553 
78554 
78555   public:
78556     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
78557     void* pNext = {};
78558     VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {};
78559 
78560   };
78561   static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
78562   static_assert( std::is_standard_layout<SharedPresentSurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
78563 
78564   template <>
78565   struct CppType<StructureType, StructureType::eSharedPresentSurfaceCapabilitiesKHR>
78566   {
78567     using Type = SharedPresentSurfaceCapabilitiesKHR;
78568   };
78569 
78570 #ifdef VK_USE_PLATFORM_GGP
78571   struct StreamDescriptorSurfaceCreateInfoGGP
78572   {
78573     static const bool allowDuplicate = false;
78574     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
78575 
78576 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78577     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {}, GgpStreamDescriptor streamDescriptor_ = {}) VULKAN_HPP_NOEXCEPT
78578     : flags( flags_ ), streamDescriptor( streamDescriptor_ )
78579     {}
78580 
78581     VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78582 
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78583     StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
78584     {
78585       *this = rhs;
78586     }
78587 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78588 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78589     StreamDescriptorSurfaceCreateInfoGGP & operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
78590     {
78591       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs );
78592       return *this;
78593     }
78594 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78595     StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
78596     {
78597       memcpy( static_cast<void *>( this ), &rhs, sizeof( StreamDescriptorSurfaceCreateInfoGGP ) );
78598       return *this;
78599     }
78600 
setPNextVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78601     StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78602     {
78603       pNext = pNext_;
78604       return *this;
78605     }
78606 
setFlagsVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78607     StreamDescriptorSurfaceCreateInfoGGP & setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
78608     {
78609       flags = flags_;
78610       return *this;
78611     }
78612 
setStreamDescriptorVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78613     StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT
78614     {
78615       streamDescriptor = streamDescriptor_;
78616       return *this;
78617     }
78618 
78619 
operator VkStreamDescriptorSurfaceCreateInfoGGP const&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78620     operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const VULKAN_HPP_NOEXCEPT
78621     {
78622       return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
78623     }
78624 
operator VkStreamDescriptorSurfaceCreateInfoGGP&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78625     operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
78626     {
78627       return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
78628     }
78629 
78630 
78631 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78632     auto operator<=>( StreamDescriptorSurfaceCreateInfoGGP const& ) const = default;
78633 #else
operator ==VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78634     bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
78635     {
78636       return ( sType == rhs.sType )
78637           && ( pNext == rhs.pNext )
78638           && ( flags == rhs.flags )
78639           && ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 );
78640     }
78641 
operator !=VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP78642     bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT
78643     {
78644       return !operator==( rhs );
78645     }
78646 #endif
78647 
78648 
78649 
78650   public:
78651     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
78652     const void* pNext = {};
78653     VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {};
78654     GgpStreamDescriptor streamDescriptor = {};
78655 
78656   };
78657   static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" );
78658   static_assert( std::is_standard_layout<StreamDescriptorSurfaceCreateInfoGGP>::value, "struct wrapper is not a standard layout!" );
78659 
78660   template <>
78661   struct CppType<StructureType, StructureType::eStreamDescriptorSurfaceCreateInfoGGP>
78662   {
78663     using Type = StreamDescriptorSurfaceCreateInfoGGP;
78664   };
78665 #endif /*VK_USE_PLATFORM_GGP*/
78666 
78667   struct SubpassDescriptionDepthStencilResolve
78668   {
78669     static const bool allowDuplicate = false;
78670     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve;
78671 
78672 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78673     VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve(VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ = {}) VULKAN_HPP_NOEXCEPT
78674     : depthResolveMode( depthResolveMode_ ), stencilResolveMode( stencilResolveMode_ ), pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
78675     {}
78676 
78677     VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78678 
SubpassDescriptionDepthStencilResolveVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78679     SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
78680     {
78681       *this = rhs;
78682     }
78683 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78684 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78685     SubpassDescriptionDepthStencilResolve & operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
78686     {
78687       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const *>( &rhs );
78688       return *this;
78689     }
78690 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78691     SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
78692     {
78693       memcpy( static_cast<void *>( this ), &rhs, sizeof( SubpassDescriptionDepthStencilResolve ) );
78694       return *this;
78695     }
78696 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78697     SubpassDescriptionDepthStencilResolve & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78698     {
78699       pNext = pNext_;
78700       return *this;
78701     }
78702 
setDepthResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78703     SubpassDescriptionDepthStencilResolve & setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
78704     {
78705       depthResolveMode = depthResolveMode_;
78706       return *this;
78707     }
78708 
setStencilResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78709     SubpassDescriptionDepthStencilResolve & setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
78710     {
78711       stencilResolveMode = stencilResolveMode_;
78712       return *this;
78713     }
78714 
setPDepthStencilResolveAttachmentVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78715     SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT
78716     {
78717       pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
78718       return *this;
78719     }
78720 
78721 
operator VkSubpassDescriptionDepthStencilResolve const&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78722     operator VkSubpassDescriptionDepthStencilResolve const&() const VULKAN_HPP_NOEXCEPT
78723     {
78724       return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>( this );
78725     }
78726 
operator VkSubpassDescriptionDepthStencilResolve&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78727     operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
78728     {
78729       return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>( this );
78730     }
78731 
78732 
78733 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78734     auto operator<=>( SubpassDescriptionDepthStencilResolve const& ) const = default;
78735 #else
operator ==VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78736     bool operator==( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
78737     {
78738       return ( sType == rhs.sType )
78739           && ( pNext == rhs.pNext )
78740           && ( depthResolveMode == rhs.depthResolveMode )
78741           && ( stencilResolveMode == rhs.stencilResolveMode )
78742           && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
78743     }
78744 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve78745     bool operator!=( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT
78746     {
78747       return !operator==( rhs );
78748     }
78749 #endif
78750 
78751 
78752 
78753   public:
78754     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve;
78755     const void* pNext = {};
78756     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
78757     VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
78758     const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment = {};
78759 
78760   };
78761   static_assert( sizeof( SubpassDescriptionDepthStencilResolve ) == sizeof( VkSubpassDescriptionDepthStencilResolve ), "struct and wrapper have different size!" );
78762   static_assert( std::is_standard_layout<SubpassDescriptionDepthStencilResolve>::value, "struct wrapper is not a standard layout!" );
78763 
78764   template <>
78765   struct CppType<StructureType, StructureType::eSubpassDescriptionDepthStencilResolve>
78766   {
78767     using Type = SubpassDescriptionDepthStencilResolve;
78768   };
78769   using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
78770 
78771 #ifdef VK_USE_PLATFORM_WIN32_KHR
78772   struct SurfaceCapabilitiesFullScreenExclusiveEXT
78773   {
78774     static const bool allowDuplicate = false;
78775     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
78776 
78777 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78778     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT(VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {}) VULKAN_HPP_NOEXCEPT
78779     : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
78780     {}
78781 
78782     VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78783 
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78784     SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78785     {
78786       *this = rhs;
78787     }
78788 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78789 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78790     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78791     {
78792       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs );
78793       return *this;
78794     }
78795 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78796     SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78797     {
78798       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) );
78799       return *this;
78800     }
78801 
setPNextVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78802     SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
78803     {
78804       pNext = pNext_;
78805       return *this;
78806     }
78807 
setFullScreenExclusiveSupportedVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78808     SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
78809     {
78810       fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
78811       return *this;
78812     }
78813 
78814 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78815     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const VULKAN_HPP_NOEXCEPT
78816     {
78817       return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
78818     }
78819 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78820     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
78821     {
78822       return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
78823     }
78824 
78825 
78826 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78827     auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const& ) const = default;
78828 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78829     bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78830     {
78831       return ( sType == rhs.sType )
78832           && ( pNext == rhs.pNext )
78833           && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
78834     }
78835 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT78836     bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78837     {
78838       return !operator==( rhs );
78839     }
78840 #endif
78841 
78842 
78843 
78844   public:
78845     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
78846     void* pNext = {};
78847     VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {};
78848 
78849   };
78850   static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" );
78851   static_assert( std::is_standard_layout<SurfaceCapabilitiesFullScreenExclusiveEXT>::value, "struct wrapper is not a standard layout!" );
78852 
78853   template <>
78854   struct CppType<StructureType, StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT>
78855   {
78856     using Type = SurfaceCapabilitiesFullScreenExclusiveEXT;
78857   };
78858 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
78859 
78860 #ifdef VK_USE_PLATFORM_WIN32_KHR
78861   struct SurfaceFullScreenExclusiveInfoEXT
78862   {
78863     static const bool allowDuplicate = false;
78864     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
78865 
78866 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78867     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault) VULKAN_HPP_NOEXCEPT
78868     : fullScreenExclusive( fullScreenExclusive_ )
78869     {}
78870 
78871     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78872 
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78873     SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78874     {
78875       *this = rhs;
78876     }
78877 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78878 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78879     SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78880     {
78881       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const *>( &rhs );
78882       return *this;
78883     }
78884 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78885     SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78886     {
78887       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFullScreenExclusiveInfoEXT ) );
78888       return *this;
78889     }
78890 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78891     SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT
78892     {
78893       pNext = pNext_;
78894       return *this;
78895     }
78896 
setFullScreenExclusiveVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78897     SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
78898     {
78899       fullScreenExclusive = fullScreenExclusive_;
78900       return *this;
78901     }
78902 
78903 
operator VkSurfaceFullScreenExclusiveInfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78904     operator VkSurfaceFullScreenExclusiveInfoEXT const&() const VULKAN_HPP_NOEXCEPT
78905     {
78906       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>( this );
78907     }
78908 
operator VkSurfaceFullScreenExclusiveInfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78909     operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
78910     {
78911       return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>( this );
78912     }
78913 
78914 
78915 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
78916     auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const& ) const = default;
78917 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78918     bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78919     {
78920       return ( sType == rhs.sType )
78921           && ( pNext == rhs.pNext )
78922           && ( fullScreenExclusive == rhs.fullScreenExclusive );
78923     }
78924 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT78925     bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
78926     {
78927       return !operator==( rhs );
78928     }
78929 #endif
78930 
78931 
78932 
78933   public:
78934     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
78935     void* pNext = {};
78936     VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault;
78937 
78938   };
78939   static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" );
78940   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveInfoEXT>::value, "struct wrapper is not a standard layout!" );
78941 
78942   template <>
78943   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveInfoEXT>
78944   {
78945     using Type = SurfaceFullScreenExclusiveInfoEXT;
78946   };
78947 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
78948 
78949 #ifdef VK_USE_PLATFORM_WIN32_KHR
78950   struct SurfaceFullScreenExclusiveWin32InfoEXT
78951   {
78952     static const bool allowDuplicate = false;
78953     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
78954 
78955 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78956     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT(HMONITOR hmonitor_ = {}) VULKAN_HPP_NOEXCEPT
78957     : hmonitor( hmonitor_ )
78958     {}
78959 
78960     VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
78961 
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78962     SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78963     {
78964       *this = rhs;
78965     }
78966 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
78967 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78968     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78969     {
78970       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs );
78971       return *this;
78972     }
78973 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78974     SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
78975     {
78976       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) );
78977       return *this;
78978     }
78979 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78980     SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
78981     {
78982       pNext = pNext_;
78983       return *this;
78984     }
78985 
setHmonitorVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78986     SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT
78987     {
78988       hmonitor = hmonitor_;
78989       return *this;
78990     }
78991 
78992 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78993     operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const VULKAN_HPP_NOEXCEPT
78994     {
78995       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
78996     }
78997 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT78998     operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
78999     {
79000       return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
79001     }
79002 
79003 
79004 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79005     auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const& ) const = default;
79006 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79007     bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79008     {
79009       return ( sType == rhs.sType )
79010           && ( pNext == rhs.pNext )
79011           && ( hmonitor == rhs.hmonitor );
79012     }
79013 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT79014     bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79015     {
79016       return !operator==( rhs );
79017     }
79018 #endif
79019 
79020 
79021 
79022   public:
79023     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
79024     const void* pNext = {};
79025     HMONITOR hmonitor = {};
79026 
79027   };
79028   static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" );
79029   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveWin32InfoEXT>::value, "struct wrapper is not a standard layout!" );
79030 
79031   template <>
79032   struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT>
79033   {
79034     using Type = SurfaceFullScreenExclusiveWin32InfoEXT;
79035   };
79036 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
79037 
79038   struct SurfaceProtectedCapabilitiesKHR
79039   {
79040     static const bool allowDuplicate = false;
79041     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR;
79042 
79043 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79044     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR(VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {}) VULKAN_HPP_NOEXCEPT
79045     : supportsProtected( supportsProtected_ )
79046     {}
79047 
79048     VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79049 
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79050     SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79051     {
79052       *this = rhs;
79053     }
79054 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79055 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79056     SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79057     {
79058       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const *>( &rhs );
79059       return *this;
79060     }
79061 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79062     SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79063     {
79064       memcpy( static_cast<void *>( this ), &rhs, sizeof( SurfaceProtectedCapabilitiesKHR ) );
79065       return *this;
79066     }
79067 
setPNextVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79068     SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79069     {
79070       pNext = pNext_;
79071       return *this;
79072     }
79073 
setSupportsProtectedVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79074     SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT
79075     {
79076       supportsProtected = supportsProtected_;
79077       return *this;
79078     }
79079 
79080 
operator VkSurfaceProtectedCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79081     operator VkSurfaceProtectedCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT
79082     {
79083       return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>( this );
79084     }
79085 
operator VkSurfaceProtectedCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79086     operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
79087     {
79088       return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>( this );
79089     }
79090 
79091 
79092 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79093     auto operator<=>( SurfaceProtectedCapabilitiesKHR const& ) const = default;
79094 #else
operator ==VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79095     bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79096     {
79097       return ( sType == rhs.sType )
79098           && ( pNext == rhs.pNext )
79099           && ( supportsProtected == rhs.supportsProtected );
79100     }
79101 
operator !=VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR79102     bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79103     {
79104       return !operator==( rhs );
79105     }
79106 #endif
79107 
79108 
79109 
79110   public:
79111     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
79112     const void* pNext = {};
79113     VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {};
79114 
79115   };
79116   static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" );
79117   static_assert( std::is_standard_layout<SurfaceProtectedCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
79118 
79119   template <>
79120   struct CppType<StructureType, StructureType::eSurfaceProtectedCapabilitiesKHR>
79121   {
79122     using Type = SurfaceProtectedCapabilitiesKHR;
79123   };
79124 
79125   struct SwapchainCounterCreateInfoEXT
79126   {
79127     static const bool allowDuplicate = false;
79128     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT;
79129 
79130 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79131     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {}) VULKAN_HPP_NOEXCEPT
79132     : surfaceCounters( surfaceCounters_ )
79133     {}
79134 
79135     VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79136 
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79137     SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79138     {
79139       *this = rhs;
79140     }
79141 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79142 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79143     SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79144     {
79145       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const *>( &rhs );
79146       return *this;
79147     }
79148 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79149     SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79150     {
79151       memcpy( static_cast<void *>( this ), &rhs, sizeof( SwapchainCounterCreateInfoEXT ) );
79152       return *this;
79153     }
79154 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79155     SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79156     {
79157       pNext = pNext_;
79158       return *this;
79159     }
79160 
setSurfaceCountersVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79161     SwapchainCounterCreateInfoEXT & setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
79162     {
79163       surfaceCounters = surfaceCounters_;
79164       return *this;
79165     }
79166 
79167 
operator VkSwapchainCounterCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79168     operator VkSwapchainCounterCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT
79169     {
79170       return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>( this );
79171     }
79172 
operator VkSwapchainCounterCreateInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79173     operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
79174     {
79175       return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>( this );
79176     }
79177 
79178 
79179 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79180     auto operator<=>( SwapchainCounterCreateInfoEXT const& ) const = default;
79181 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79182     bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79183     {
79184       return ( sType == rhs.sType )
79185           && ( pNext == rhs.pNext )
79186           && ( surfaceCounters == rhs.surfaceCounters );
79187     }
79188 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT79189     bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79190     {
79191       return !operator==( rhs );
79192     }
79193 #endif
79194 
79195 
79196 
79197   public:
79198     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
79199     const void* pNext = {};
79200     VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {};
79201 
79202   };
79203   static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" );
79204   static_assert( std::is_standard_layout<SwapchainCounterCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
79205 
79206   template <>
79207   struct CppType<StructureType, StructureType::eSwapchainCounterCreateInfoEXT>
79208   {
79209     using Type = SwapchainCounterCreateInfoEXT;
79210   };
79211 
79212   struct SwapchainDisplayNativeHdrCreateInfoAMD
79213   {
79214     static const bool allowDuplicate = false;
79215     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
79216 
79217 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79218     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {}) VULKAN_HPP_NOEXCEPT
79219     : localDimmingEnable( localDimmingEnable_ )
79220     {}
79221 
79222     VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79223 
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79224     SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79225     {
79226       *this = rhs;
79227     }
79228 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79229 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79230     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79231     {
79232       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs );
79233       return *this;
79234     }
79235 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79236     SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79237     {
79238       memcpy( static_cast<void *>( this ), &rhs, sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) );
79239       return *this;
79240     }
79241 
setPNextVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79242     SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79243     {
79244       pNext = pNext_;
79245       return *this;
79246     }
79247 
setLocalDimmingEnableVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79248     SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
79249     {
79250       localDimmingEnable = localDimmingEnable_;
79251       return *this;
79252     }
79253 
79254 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79255     operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT
79256     {
79257       return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
79258     }
79259 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79260     operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
79261     {
79262       return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
79263     }
79264 
79265 
79266 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79267     auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const& ) const = default;
79268 #else
operator ==VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79269     bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
79270     {
79271       return ( sType == rhs.sType )
79272           && ( pNext == rhs.pNext )
79273           && ( localDimmingEnable == rhs.localDimmingEnable );
79274     }
79275 
operator !=VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD79276     bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
79277     {
79278       return !operator==( rhs );
79279     }
79280 #endif
79281 
79282 
79283 
79284   public:
79285     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
79286     const void* pNext = {};
79287     VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {};
79288 
79289   };
79290   static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" );
79291   static_assert( std::is_standard_layout<SwapchainDisplayNativeHdrCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
79292 
79293   template <>
79294   struct CppType<StructureType, StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD>
79295   {
79296     using Type = SwapchainDisplayNativeHdrCreateInfoAMD;
79297   };
79298 
79299   struct TextureLODGatherFormatPropertiesAMD
79300   {
79301     static const bool allowDuplicate = false;
79302     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD;
79303 
79304 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79305     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD(VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {}) VULKAN_HPP_NOEXCEPT
79306     : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
79307     {}
79308 
79309     VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79310 
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79311     TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79312     {
79313       *this = rhs;
79314     }
79315 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79316 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79317     TextureLODGatherFormatPropertiesAMD & operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79318     {
79319       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const *>( &rhs );
79320       return *this;
79321     }
79322 
operator =VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79323     TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
79324     {
79325       memcpy( static_cast<void *>( this ), &rhs, sizeof( TextureLODGatherFormatPropertiesAMD ) );
79326       return *this;
79327     }
79328 
79329 
operator VkTextureLODGatherFormatPropertiesAMD const&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79330     operator VkTextureLODGatherFormatPropertiesAMD const&() const VULKAN_HPP_NOEXCEPT
79331     {
79332       return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>( this );
79333     }
79334 
operator VkTextureLODGatherFormatPropertiesAMD&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79335     operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
79336     {
79337       return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>( this );
79338     }
79339 
79340 
79341 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79342     auto operator<=>( TextureLODGatherFormatPropertiesAMD const& ) const = default;
79343 #else
operator ==VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79344     bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
79345     {
79346       return ( sType == rhs.sType )
79347           && ( pNext == rhs.pNext )
79348           && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
79349     }
79350 
operator !=VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD79351     bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT
79352     {
79353       return !operator==( rhs );
79354     }
79355 #endif
79356 
79357 
79358 
79359   public:
79360     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
79361     void* pNext = {};
79362     VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {};
79363 
79364   };
79365   static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" );
79366   static_assert( std::is_standard_layout<TextureLODGatherFormatPropertiesAMD>::value, "struct wrapper is not a standard layout!" );
79367 
79368   template <>
79369   struct CppType<StructureType, StructureType::eTextureLodGatherFormatPropertiesAMD>
79370   {
79371     using Type = TextureLODGatherFormatPropertiesAMD;
79372   };
79373 
79374   struct TimelineSemaphoreSubmitInfo
79375   {
79376     static const bool allowDuplicate = false;
79377     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo;
79378 
79379 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79380     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo(uint32_t waitSemaphoreValueCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValueCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT
79381     : waitSemaphoreValueCount( waitSemaphoreValueCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValueCount( signalSemaphoreValueCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ )
79382     {}
79383 
79384     VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79385 
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79386     TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
79387     {
79388       *this = rhs;
79389     }
79390 
79391 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
TimelineSemaphoreSubmitInfoVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79392     TimelineSemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {} )
79393     : waitSemaphoreValueCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValueCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() )
79394     {}
79395 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79396 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79397 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79398     TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
79399     {
79400       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const *>( &rhs );
79401       return *this;
79402     }
79403 
operator =VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79404     TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
79405     {
79406       memcpy( static_cast<void *>( this ), &rhs, sizeof( TimelineSemaphoreSubmitInfo ) );
79407       return *this;
79408     }
79409 
setPNextVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79410     TimelineSemaphoreSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79411     {
79412       pNext = pNext_;
79413       return *this;
79414     }
79415 
setWaitSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79416     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
79417     {
79418       waitSemaphoreValueCount = waitSemaphoreValueCount_;
79419       return *this;
79420     }
79421 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79422     TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
79423     {
79424       pWaitSemaphoreValues = pWaitSemaphoreValues_;
79425       return *this;
79426     }
79427 
79428 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79429     TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
79430     {
79431       waitSemaphoreValueCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
79432       pWaitSemaphoreValues = waitSemaphoreValues_.data();
79433       return *this;
79434     }
79435 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79436 
setSignalSemaphoreValueCountVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79437     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
79438     {
79439       signalSemaphoreValueCount = signalSemaphoreValueCount_;
79440       return *this;
79441     }
79442 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79443     TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
79444     {
79445       pSignalSemaphoreValues = pSignalSemaphoreValues_;
79446       return *this;
79447     }
79448 
79449 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79450     TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
79451     {
79452       signalSemaphoreValueCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
79453       pSignalSemaphoreValues = signalSemaphoreValues_.data();
79454       return *this;
79455     }
79456 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79457 
79458 
operator VkTimelineSemaphoreSubmitInfo const&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79459     operator VkTimelineSemaphoreSubmitInfo const&() const VULKAN_HPP_NOEXCEPT
79460     {
79461       return *reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>( this );
79462     }
79463 
operator VkTimelineSemaphoreSubmitInfo&VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79464     operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
79465     {
79466       return *reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>( this );
79467     }
79468 
79469 
79470 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79471     auto operator<=>( TimelineSemaphoreSubmitInfo const& ) const = default;
79472 #else
operator ==VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79473     bool operator==( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
79474     {
79475       return ( sType == rhs.sType )
79476           && ( pNext == rhs.pNext )
79477           && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount )
79478           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
79479           && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount )
79480           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
79481     }
79482 
operator !=VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo79483     bool operator!=( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT
79484     {
79485       return !operator==( rhs );
79486     }
79487 #endif
79488 
79489 
79490 
79491   public:
79492     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo;
79493     const void* pNext = {};
79494     uint32_t waitSemaphoreValueCount = {};
79495     const uint64_t* pWaitSemaphoreValues = {};
79496     uint32_t signalSemaphoreValueCount = {};
79497     const uint64_t* pSignalSemaphoreValues = {};
79498 
79499   };
79500   static_assert( sizeof( TimelineSemaphoreSubmitInfo ) == sizeof( VkTimelineSemaphoreSubmitInfo ), "struct and wrapper have different size!" );
79501   static_assert( std::is_standard_layout<TimelineSemaphoreSubmitInfo>::value, "struct wrapper is not a standard layout!" );
79502 
79503   template <>
79504   struct CppType<StructureType, StructureType::eTimelineSemaphoreSubmitInfo>
79505   {
79506     using Type = TimelineSemaphoreSubmitInfo;
79507   };
79508   using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
79509 
79510 #ifdef VK_ENABLE_BETA_EXTENSIONS
79511   struct TraceRaysIndirectCommandKHR
79512   {
79513 
79514 
79515 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79516     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT
79517     : width( width_ ), height( height_ ), depth( depth_ )
79518     {}
79519 
79520     VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79521 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79522     TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79523     {
79524       *this = rhs;
79525     }
79526 
TraceRaysIndirectCommandKHRVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79527     explicit TraceRaysIndirectCommandKHR( Extent2D const& extent2D, uint32_t depth_ = {} )
79528       : width( extent2D.width )
79529       , height( extent2D.height )
79530       , depth( depth_ )
79531     {}
79532 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79533 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79534     TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79535     {
79536       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const *>( &rhs );
79537       return *this;
79538     }
79539 
operator =VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79540     TraceRaysIndirectCommandKHR & operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79541     {
79542       memcpy( static_cast<void *>( this ), &rhs, sizeof( TraceRaysIndirectCommandKHR ) );
79543       return *this;
79544     }
79545 
setWidthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79546     TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
79547     {
79548       width = width_;
79549       return *this;
79550     }
79551 
setHeightVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79552     TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
79553     {
79554       height = height_;
79555       return *this;
79556     }
79557 
setDepthVULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79558     TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
79559     {
79560       depth = depth_;
79561       return *this;
79562     }
79563 
79564 
operator VkTraceRaysIndirectCommandKHR const&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79565     operator VkTraceRaysIndirectCommandKHR const&() const VULKAN_HPP_NOEXCEPT
79566     {
79567       return *reinterpret_cast<const VkTraceRaysIndirectCommandKHR*>( this );
79568     }
79569 
operator VkTraceRaysIndirectCommandKHR&VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79570     operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
79571     {
79572       return *reinterpret_cast<VkTraceRaysIndirectCommandKHR*>( this );
79573     }
79574 
79575 
79576 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79577     auto operator<=>( TraceRaysIndirectCommandKHR const& ) const = default;
79578 #else
operator ==VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79579     bool operator==( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79580     {
79581       return ( width == rhs.width )
79582           && ( height == rhs.height )
79583           && ( depth == rhs.depth );
79584     }
79585 
operator !=VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR79586     bool operator!=( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
79587     {
79588       return !operator==( rhs );
79589     }
79590 #endif
79591 
79592 
79593 
79594   public:
79595     uint32_t width = {};
79596     uint32_t height = {};
79597     uint32_t depth = {};
79598 
79599   };
79600   static_assert( sizeof( TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ), "struct and wrapper have different size!" );
79601   static_assert( std::is_standard_layout<TraceRaysIndirectCommandKHR>::value, "struct wrapper is not a standard layout!" );
79602 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
79603 
79604   struct ValidationFeaturesEXT
79605   {
79606     static const bool allowDuplicate = false;
79607     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT;
79608 
79609 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79610     VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT(uint32_t enabledValidationFeatureCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ = {}, uint32_t disabledValidationFeatureCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ = {}) VULKAN_HPP_NOEXCEPT
79611     : enabledValidationFeatureCount( enabledValidationFeatureCount_ ), pEnabledValidationFeatures( pEnabledValidationFeatures_ ), disabledValidationFeatureCount( disabledValidationFeatureCount_ ), pDisabledValidationFeatures( pDisabledValidationFeatures_ )
79612     {}
79613 
79614     VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79615 
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79616     ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79617     {
79618       *this = rhs;
79619     }
79620 
79621 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79622     ValidationFeaturesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ = {} )
79623     : enabledValidationFeatureCount( static_cast<uint32_t>( enabledValidationFeatures_.size() ) ), pEnabledValidationFeatures( enabledValidationFeatures_.data() ), disabledValidationFeatureCount( static_cast<uint32_t>( disabledValidationFeatures_.size() ) ), pDisabledValidationFeatures( disabledValidationFeatures_.data() )
79624     {}
79625 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79626 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79627 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79628     ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79629     {
79630       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const *>( &rhs );
79631       return *this;
79632     }
79633 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79634     ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79635     {
79636       memcpy( static_cast<void *>( this ), &rhs, sizeof( ValidationFeaturesEXT ) );
79637       return *this;
79638     }
79639 
setPNextVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79640     ValidationFeaturesEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79641     {
79642       pNext = pNext_;
79643       return *this;
79644     }
79645 
setEnabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79646     ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
79647     {
79648       enabledValidationFeatureCount = enabledValidationFeatureCount_;
79649       return *this;
79650     }
79651 
setPEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79652     ValidationFeaturesEXT & setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79653     {
79654       pEnabledValidationFeatures = pEnabledValidationFeatures_;
79655       return *this;
79656     }
79657 
79658 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79659     ValidationFeaturesEXT & setEnabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79660     {
79661       enabledValidationFeatureCount = static_cast<uint32_t>( enabledValidationFeatures_.size() );
79662       pEnabledValidationFeatures = enabledValidationFeatures_.data();
79663       return *this;
79664     }
79665 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79666 
setDisabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79667     ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
79668     {
79669       disabledValidationFeatureCount = disabledValidationFeatureCount_;
79670       return *this;
79671     }
79672 
setPDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79673     ValidationFeaturesEXT & setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79674     {
79675       pDisabledValidationFeatures = pDisabledValidationFeatures_;
79676       return *this;
79677     }
79678 
79679 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79680     ValidationFeaturesEXT & setDisabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
79681     {
79682       disabledValidationFeatureCount = static_cast<uint32_t>( disabledValidationFeatures_.size() );
79683       pDisabledValidationFeatures = disabledValidationFeatures_.data();
79684       return *this;
79685     }
79686 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79687 
79688 
operator VkValidationFeaturesEXT const&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79689     operator VkValidationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT
79690     {
79691       return *reinterpret_cast<const VkValidationFeaturesEXT*>( this );
79692     }
79693 
operator VkValidationFeaturesEXT&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79694     operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
79695     {
79696       return *reinterpret_cast<VkValidationFeaturesEXT*>( this );
79697     }
79698 
79699 
79700 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79701     auto operator<=>( ValidationFeaturesEXT const& ) const = default;
79702 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79703     bool operator==( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79704     {
79705       return ( sType == rhs.sType )
79706           && ( pNext == rhs.pNext )
79707           && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount )
79708           && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures )
79709           && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount )
79710           && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
79711     }
79712 
operator !=VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT79713     bool operator!=( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79714     {
79715       return !operator==( rhs );
79716     }
79717 #endif
79718 
79719 
79720 
79721   public:
79722     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT;
79723     const void* pNext = {};
79724     uint32_t enabledValidationFeatureCount = {};
79725     const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures = {};
79726     uint32_t disabledValidationFeatureCount = {};
79727     const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures = {};
79728 
79729   };
79730   static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" );
79731   static_assert( std::is_standard_layout<ValidationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
79732 
79733   template <>
79734   struct CppType<StructureType, StructureType::eValidationFeaturesEXT>
79735   {
79736     using Type = ValidationFeaturesEXT;
79737   };
79738 
79739   struct ValidationFlagsEXT
79740   {
79741     static const bool allowDuplicate = false;
79742     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT;
79743 
79744 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79745     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT(uint32_t disabledValidationCheckCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ = {}) VULKAN_HPP_NOEXCEPT
79746     : disabledValidationCheckCount( disabledValidationCheckCount_ ), pDisabledValidationChecks( pDisabledValidationChecks_ )
79747     {}
79748 
79749     VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79750 
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79751     ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79752     {
79753       *this = rhs;
79754     }
79755 
79756 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79757     ValidationFlagsEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ )
79758     : disabledValidationCheckCount( static_cast<uint32_t>( disabledValidationChecks_.size() ) ), pDisabledValidationChecks( disabledValidationChecks_.data() )
79759     {}
79760 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79761 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79762 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79763     ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79764     {
79765       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const *>( &rhs );
79766       return *this;
79767     }
79768 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79769     ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
79770     {
79771       memcpy( static_cast<void *>( this ), &rhs, sizeof( ValidationFlagsEXT ) );
79772       return *this;
79773     }
79774 
setPNextVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79775     ValidationFlagsEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79776     {
79777       pNext = pNext_;
79778       return *this;
79779     }
79780 
setDisabledValidationCheckCountVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79781     ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT
79782     {
79783       disabledValidationCheckCount = disabledValidationCheckCount_;
79784       return *this;
79785     }
79786 
setPDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79787     ValidationFlagsEXT & setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
79788     {
79789       pDisabledValidationChecks = pDisabledValidationChecks_;
79790       return *this;
79791     }
79792 
79793 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT79794     ValidationFlagsEXT & setDisabledValidationChecks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
79795     {
79796       disabledValidationCheckCount = static_cast<uint32_t>( disabledValidationChecks_.size() );
79797       pDisabledValidationChecks = disabledValidationChecks_.data();
79798       return *this;
79799     }
79800 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
79801 
79802 
operator VkValidationFlagsEXT const&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79803     operator VkValidationFlagsEXT const&() const VULKAN_HPP_NOEXCEPT
79804     {
79805       return *reinterpret_cast<const VkValidationFlagsEXT*>( this );
79806     }
79807 
operator VkValidationFlagsEXT&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79808     operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
79809     {
79810       return *reinterpret_cast<VkValidationFlagsEXT*>( this );
79811     }
79812 
79813 
79814 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79815     auto operator<=>( ValidationFlagsEXT const& ) const = default;
79816 #else
operator ==VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79817     bool operator==( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79818     {
79819       return ( sType == rhs.sType )
79820           && ( pNext == rhs.pNext )
79821           && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount )
79822           && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
79823     }
79824 
operator !=VULKAN_HPP_NAMESPACE::ValidationFlagsEXT79825     bool operator!=( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
79826     {
79827       return !operator==( rhs );
79828     }
79829 #endif
79830 
79831 
79832 
79833   public:
79834     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT;
79835     const void* pNext = {};
79836     uint32_t disabledValidationCheckCount = {};
79837     const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks = {};
79838 
79839   };
79840   static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" );
79841   static_assert( std::is_standard_layout<ValidationFlagsEXT>::value, "struct wrapper is not a standard layout!" );
79842 
79843   template <>
79844   struct CppType<StructureType, StructureType::eValidationFlagsEXT>
79845   {
79846     using Type = ValidationFlagsEXT;
79847   };
79848 
79849 #ifdef VK_USE_PLATFORM_VI_NN
79850   struct ViSurfaceCreateInfoNN
79851   {
79852     static const bool allowDuplicate = false;
79853     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN;
79854 
79855 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79856     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void* window_ = {}) VULKAN_HPP_NOEXCEPT
79857     : flags( flags_ ), window( window_ )
79858     {}
79859 
79860     VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79861 
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79862     ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
79863     {
79864       *this = rhs;
79865     }
79866 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79867 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79868     ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
79869     {
79870       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const *>( &rhs );
79871       return *this;
79872     }
79873 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79874     ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
79875     {
79876       memcpy( static_cast<void *>( this ), &rhs, sizeof( ViSurfaceCreateInfoNN ) );
79877       return *this;
79878     }
79879 
setPNextVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79880     ViSurfaceCreateInfoNN & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79881     {
79882       pNext = pNext_;
79883       return *this;
79884     }
79885 
setFlagsVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79886     ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT
79887     {
79888       flags = flags_;
79889       return *this;
79890     }
79891 
setWindowVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79892     ViSurfaceCreateInfoNN & setWindow( void* window_ ) VULKAN_HPP_NOEXCEPT
79893     {
79894       window = window_;
79895       return *this;
79896     }
79897 
79898 
operator VkViSurfaceCreateInfoNN const&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79899     operator VkViSurfaceCreateInfoNN const&() const VULKAN_HPP_NOEXCEPT
79900     {
79901       return *reinterpret_cast<const VkViSurfaceCreateInfoNN*>( this );
79902     }
79903 
operator VkViSurfaceCreateInfoNN&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79904     operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
79905     {
79906       return *reinterpret_cast<VkViSurfaceCreateInfoNN*>( this );
79907     }
79908 
79909 
79910 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
79911     auto operator<=>( ViSurfaceCreateInfoNN const& ) const = default;
79912 #else
operator ==VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79913     bool operator==( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
79914     {
79915       return ( sType == rhs.sType )
79916           && ( pNext == rhs.pNext )
79917           && ( flags == rhs.flags )
79918           && ( window == rhs.window );
79919     }
79920 
operator !=VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN79921     bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT
79922     {
79923       return !operator==( rhs );
79924     }
79925 #endif
79926 
79927 
79928 
79929   public:
79930     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN;
79931     const void* pNext = {};
79932     VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {};
79933     void* window = {};
79934 
79935   };
79936   static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" );
79937   static_assert( std::is_standard_layout<ViSurfaceCreateInfoNN>::value, "struct wrapper is not a standard layout!" );
79938 
79939   template <>
79940   struct CppType<StructureType, StructureType::eViSurfaceCreateInfoNN>
79941   {
79942     using Type = ViSurfaceCreateInfoNN;
79943   };
79944 #endif /*VK_USE_PLATFORM_VI_NN*/
79945 
79946 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
79947   struct WaylandSurfaceCreateInfoKHR
79948   {
79949     static const bool allowDuplicate = false;
79950     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR;
79951 
79952 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79953     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {}, struct wl_display* display_ = {}, struct wl_surface* surface_ = {}) VULKAN_HPP_NOEXCEPT
79954     : flags( flags_ ), display( display_ ), surface( surface_ )
79955     {}
79956 
79957     VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
79958 
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79959     WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79960     {
79961       *this = rhs;
79962     }
79963 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
79964 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79965     WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79966     {
79967       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const *>( &rhs );
79968       return *this;
79969     }
79970 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79971     WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
79972     {
79973       memcpy( static_cast<void *>( this ), &rhs, sizeof( WaylandSurfaceCreateInfoKHR ) );
79974       return *this;
79975     }
79976 
setPNextVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79977     WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
79978     {
79979       pNext = pNext_;
79980       return *this;
79981     }
79982 
setFlagsVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79983     WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
79984     {
79985       flags = flags_;
79986       return *this;
79987     }
79988 
setDisplayVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79989     WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ ) VULKAN_HPP_NOEXCEPT
79990     {
79991       display = display_;
79992       return *this;
79993     }
79994 
setSurfaceVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR79995     WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ ) VULKAN_HPP_NOEXCEPT
79996     {
79997       surface = surface_;
79998       return *this;
79999     }
80000 
80001 
operator VkWaylandSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80002     operator VkWaylandSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80003     {
80004       return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( this );
80005     }
80006 
operator VkWaylandSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80007     operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
80008     {
80009       return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>( this );
80010     }
80011 
80012 
80013 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80014     auto operator<=>( WaylandSurfaceCreateInfoKHR const& ) const = default;
80015 #else
operator ==VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80016     bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80017     {
80018       return ( sType == rhs.sType )
80019           && ( pNext == rhs.pNext )
80020           && ( flags == rhs.flags )
80021           && ( display == rhs.display )
80022           && ( surface == rhs.surface );
80023     }
80024 
operator !=VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR80025     bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80026     {
80027       return !operator==( rhs );
80028     }
80029 #endif
80030 
80031 
80032 
80033   public:
80034     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
80035     const void* pNext = {};
80036     VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {};
80037     struct wl_display* display = {};
80038     struct wl_surface* surface = {};
80039 
80040   };
80041   static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
80042   static_assert( std::is_standard_layout<WaylandSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
80043 
80044   template <>
80045   struct CppType<StructureType, StructureType::eWaylandSurfaceCreateInfoKHR>
80046   {
80047     using Type = WaylandSurfaceCreateInfoKHR;
80048   };
80049 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
80050 
80051 #ifdef VK_USE_PLATFORM_WIN32_KHR
80052   struct Win32KeyedMutexAcquireReleaseInfoKHR
80053   {
80054     static const bool allowDuplicate = false;
80055     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
80056 
80057 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80058     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR(uint32_t acquireCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {}, const uint64_t* pAcquireKeys_ = {}, const uint32_t* pAcquireTimeouts_ = {}, uint32_t releaseCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {}, const uint64_t* pReleaseKeys_ = {}) VULKAN_HPP_NOEXCEPT
80059     : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeouts( pAcquireTimeouts_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
80060     {}
80061 
80062     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80063 
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80064     Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80065     {
80066       *this = rhs;
80067     }
80068 
80069 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80070     Win32KeyedMutexAcquireReleaseInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ = {} )
80071     : acquireCount( static_cast<uint32_t>( acquireSyncs_.size() ) ), pAcquireSyncs( acquireSyncs_.data() ), pAcquireKeys( acquireKeys_.data() ), pAcquireTimeouts( acquireTimeouts_.data() ), releaseCount( static_cast<uint32_t>( releaseSyncs_.size() ) ), pReleaseSyncs( releaseSyncs_.data() ), pReleaseKeys( releaseKeys_.data() )
80072     {
80073 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80074       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
80075       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() );
80076       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() );
80077 #else
80078       if ( acquireSyncs_.size() != acquireKeys_.size() )
80079       {
80080         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" );
80081       }
80082       if ( acquireSyncs_.size() != acquireTimeouts_.size() )
80083       {
80084         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" );
80085       }
80086       if ( acquireKeys_.size() != acquireTimeouts_.size() )
80087       {
80088         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" );
80089       }
80090 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
80091 
80092 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80093       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
80094 #else
80095       if ( releaseSyncs_.size() != releaseKeys_.size() )
80096       {
80097         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" );
80098       }
80099 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
80100     }
80101 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80102 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80103 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80104     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80105     {
80106       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs );
80107       return *this;
80108     }
80109 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80110     Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80111     {
80112       memcpy( static_cast<void *>( this ), &rhs, sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) );
80113       return *this;
80114     }
80115 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80116     Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80117     {
80118       pNext = pNext_;
80119       return *this;
80120     }
80121 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80122     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
80123     {
80124       acquireCount = acquireCount_;
80125       return *this;
80126     }
80127 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80128     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
80129     {
80130       pAcquireSyncs = pAcquireSyncs_;
80131       return *this;
80132     }
80133 
80134 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80135     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
80136     {
80137       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
80138       pAcquireSyncs = acquireSyncs_.data();
80139       return *this;
80140     }
80141 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80142 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80143     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
80144     {
80145       pAcquireKeys = pAcquireKeys_;
80146       return *this;
80147     }
80148 
80149 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80150     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
80151     {
80152       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
80153       pAcquireKeys = acquireKeys_.data();
80154       return *this;
80155     }
80156 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80157 
setPAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80158     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
80159     {
80160       pAcquireTimeouts = pAcquireTimeouts_;
80161       return *this;
80162     }
80163 
80164 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80165     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
80166     {
80167       acquireCount = static_cast<uint32_t>( acquireTimeouts_.size() );
80168       pAcquireTimeouts = acquireTimeouts_.data();
80169       return *this;
80170     }
80171 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80172 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80173     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
80174     {
80175       releaseCount = releaseCount_;
80176       return *this;
80177     }
80178 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80179     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
80180     {
80181       pReleaseSyncs = pReleaseSyncs_;
80182       return *this;
80183     }
80184 
80185 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80186     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
80187     {
80188       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
80189       pReleaseSyncs = releaseSyncs_.data();
80190       return *this;
80191     }
80192 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80193 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80194     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
80195     {
80196       pReleaseKeys = pReleaseKeys_;
80197       return *this;
80198     }
80199 
80200 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80201     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
80202     {
80203       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
80204       pReleaseKeys = releaseKeys_.data();
80205       return *this;
80206     }
80207 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80208 
80209 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80210     operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80211     {
80212       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
80213     }
80214 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80215     operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
80216     {
80217       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
80218     }
80219 
80220 
80221 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80222     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const& ) const = default;
80223 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80224     bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80225     {
80226       return ( sType == rhs.sType )
80227           && ( pNext == rhs.pNext )
80228           && ( acquireCount == rhs.acquireCount )
80229           && ( pAcquireSyncs == rhs.pAcquireSyncs )
80230           && ( pAcquireKeys == rhs.pAcquireKeys )
80231           && ( pAcquireTimeouts == rhs.pAcquireTimeouts )
80232           && ( releaseCount == rhs.releaseCount )
80233           && ( pReleaseSyncs == rhs.pReleaseSyncs )
80234           && ( pReleaseKeys == rhs.pReleaseKeys );
80235     }
80236 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR80237     bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80238     {
80239       return !operator==( rhs );
80240     }
80241 #endif
80242 
80243 
80244 
80245   public:
80246     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
80247     const void* pNext = {};
80248     uint32_t acquireCount = {};
80249     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
80250     const uint64_t* pAcquireKeys = {};
80251     const uint32_t* pAcquireTimeouts = {};
80252     uint32_t releaseCount = {};
80253     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
80254     const uint64_t* pReleaseKeys = {};
80255 
80256   };
80257   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" );
80258   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoKHR>::value, "struct wrapper is not a standard layout!" );
80259 
80260   template <>
80261   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR>
80262   {
80263     using Type = Win32KeyedMutexAcquireReleaseInfoKHR;
80264   };
80265 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80266 
80267 #ifdef VK_USE_PLATFORM_WIN32_KHR
80268   struct Win32KeyedMutexAcquireReleaseInfoNV
80269   {
80270     static const bool allowDuplicate = false;
80271     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
80272 
80273 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80274     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV(uint32_t acquireCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {}, const uint64_t* pAcquireKeys_ = {}, const uint32_t* pAcquireTimeoutMilliseconds_ = {}, uint32_t releaseCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {}, const uint64_t* pReleaseKeys_ = {}) VULKAN_HPP_NOEXCEPT
80275     : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ )
80276     {}
80277 
80278     VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80279 
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80280     Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
80281     {
80282       *this = rhs;
80283     }
80284 
80285 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80286     Win32KeyedMutexAcquireReleaseInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ = {} )
80287     : acquireCount( static_cast<uint32_t>( acquireSyncs_.size() ) ), pAcquireSyncs( acquireSyncs_.data() ), pAcquireKeys( acquireKeys_.data() ), pAcquireTimeoutMilliseconds( acquireTimeoutMilliseconds_.data() ), releaseCount( static_cast<uint32_t>( releaseSyncs_.size() ) ), pReleaseSyncs( releaseSyncs_.data() ), pReleaseKeys( releaseKeys_.data() )
80288     {
80289 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80290       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
80291       VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() );
80292       VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() );
80293 #else
80294       if ( acquireSyncs_.size() != acquireKeys_.size() )
80295       {
80296         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" );
80297       }
80298       if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() )
80299       {
80300         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" );
80301       }
80302       if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() )
80303       {
80304         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" );
80305       }
80306 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
80307 
80308 #ifdef VULKAN_HPP_NO_EXCEPTIONS
80309       VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
80310 #else
80311       if ( releaseSyncs_.size() != releaseKeys_.size() )
80312       {
80313         throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" );
80314       }
80315 #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
80316     }
80317 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80318 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80319 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80320     Win32KeyedMutexAcquireReleaseInfoNV & operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
80321     {
80322       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs );
80323       return *this;
80324     }
80325 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80326     Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
80327     {
80328       memcpy( static_cast<void *>( this ), &rhs, sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) );
80329       return *this;
80330     }
80331 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80332     Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80333     {
80334       pNext = pNext_;
80335       return *this;
80336     }
80337 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80338     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
80339     {
80340       acquireCount = acquireCount_;
80341       return *this;
80342     }
80343 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80344     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
80345     {
80346       pAcquireSyncs = pAcquireSyncs_;
80347       return *this;
80348     }
80349 
80350 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80351     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
80352     {
80353       acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
80354       pAcquireSyncs = acquireSyncs_.data();
80355       return *this;
80356     }
80357 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80358 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80359     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
80360     {
80361       pAcquireKeys = pAcquireKeys_;
80362       return *this;
80363     }
80364 
80365 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80366     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
80367     {
80368       acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
80369       pAcquireKeys = acquireKeys_.data();
80370       return *this;
80371     }
80372 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80373 
setPAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80374     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
80375     {
80376       pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
80377       return *this;
80378     }
80379 
80380 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80381     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
80382     {
80383       acquireCount = static_cast<uint32_t>( acquireTimeoutMilliseconds_.size() );
80384       pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data();
80385       return *this;
80386     }
80387 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80388 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80389     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
80390     {
80391       releaseCount = releaseCount_;
80392       return *this;
80393     }
80394 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80395     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
80396     {
80397       pReleaseSyncs = pReleaseSyncs_;
80398       return *this;
80399     }
80400 
80401 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80402     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
80403     {
80404       releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
80405       pReleaseSyncs = releaseSyncs_.data();
80406       return *this;
80407     }
80408 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80409 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80410     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
80411     {
80412       pReleaseKeys = pReleaseKeys_;
80413       return *this;
80414     }
80415 
80416 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80417     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
80418     {
80419       releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
80420       pReleaseKeys = releaseKeys_.data();
80421       return *this;
80422     }
80423 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80424 
80425 
operator VkWin32KeyedMutexAcquireReleaseInfoNV const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80426     operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const VULKAN_HPP_NOEXCEPT
80427     {
80428       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
80429     }
80430 
operator VkWin32KeyedMutexAcquireReleaseInfoNV&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80431     operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
80432     {
80433       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
80434     }
80435 
80436 
80437 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80438     auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const& ) const = default;
80439 #else
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80440     bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
80441     {
80442       return ( sType == rhs.sType )
80443           && ( pNext == rhs.pNext )
80444           && ( acquireCount == rhs.acquireCount )
80445           && ( pAcquireSyncs == rhs.pAcquireSyncs )
80446           && ( pAcquireKeys == rhs.pAcquireKeys )
80447           && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds )
80448           && ( releaseCount == rhs.releaseCount )
80449           && ( pReleaseSyncs == rhs.pReleaseSyncs )
80450           && ( pReleaseKeys == rhs.pReleaseKeys );
80451     }
80452 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV80453     bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT
80454     {
80455       return !operator==( rhs );
80456     }
80457 #endif
80458 
80459 
80460 
80461   public:
80462     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
80463     const void* pNext = {};
80464     uint32_t acquireCount = {};
80465     const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {};
80466     const uint64_t* pAcquireKeys = {};
80467     const uint32_t* pAcquireTimeoutMilliseconds = {};
80468     uint32_t releaseCount = {};
80469     const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {};
80470     const uint64_t* pReleaseKeys = {};
80471 
80472   };
80473   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" );
80474   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoNV>::value, "struct wrapper is not a standard layout!" );
80475 
80476   template <>
80477   struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoNV>
80478   {
80479     using Type = Win32KeyedMutexAcquireReleaseInfoNV;
80480   };
80481 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80482 
80483 #ifdef VK_USE_PLATFORM_WIN32_KHR
80484   struct Win32SurfaceCreateInfoKHR
80485   {
80486     static const bool allowDuplicate = false;
80487     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR;
80488 
80489 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80490     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {}, HINSTANCE hinstance_ = {}, HWND hwnd_ = {}) VULKAN_HPP_NOEXCEPT
80491     : flags( flags_ ), hinstance( hinstance_ ), hwnd( hwnd_ )
80492     {}
80493 
80494     VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80495 
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80496     Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80497     {
80498       *this = rhs;
80499     }
80500 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80501 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80502     Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80503     {
80504       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const *>( &rhs );
80505       return *this;
80506     }
80507 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80508     Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80509     {
80510       memcpy( static_cast<void *>( this ), &rhs, sizeof( Win32SurfaceCreateInfoKHR ) );
80511       return *this;
80512     }
80513 
setPNextVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80514     Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80515     {
80516       pNext = pNext_;
80517       return *this;
80518     }
80519 
setFlagsVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80520     Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
80521     {
80522       flags = flags_;
80523       return *this;
80524     }
80525 
setHinstanceVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80526     Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT
80527     {
80528       hinstance = hinstance_;
80529       return *this;
80530     }
80531 
setHwndVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80532     Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT
80533     {
80534       hwnd = hwnd_;
80535       return *this;
80536     }
80537 
80538 
operator VkWin32SurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80539     operator VkWin32SurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80540     {
80541       return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( this );
80542     }
80543 
operator VkWin32SurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80544     operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
80545     {
80546       return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>( this );
80547     }
80548 
80549 
80550 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80551     auto operator<=>( Win32SurfaceCreateInfoKHR const& ) const = default;
80552 #else
operator ==VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80553     bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80554     {
80555       return ( sType == rhs.sType )
80556           && ( pNext == rhs.pNext )
80557           && ( flags == rhs.flags )
80558           && ( hinstance == rhs.hinstance )
80559           && ( hwnd == rhs.hwnd );
80560     }
80561 
operator !=VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR80562     bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80563     {
80564       return !operator==( rhs );
80565     }
80566 #endif
80567 
80568 
80569 
80570   public:
80571     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
80572     const void* pNext = {};
80573     VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {};
80574     HINSTANCE hinstance = {};
80575     HWND hwnd = {};
80576 
80577   };
80578   static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
80579   static_assert( std::is_standard_layout<Win32SurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
80580 
80581   template <>
80582   struct CppType<StructureType, StructureType::eWin32SurfaceCreateInfoKHR>
80583   {
80584     using Type = Win32SurfaceCreateInfoKHR;
80585   };
80586 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
80587 
80588   struct WriteDescriptorSetAccelerationStructureKHR
80589   {
80590     static const bool allowDuplicate = false;
80591     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
80592 
80593 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80594     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT
80595     : accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ )
80596     {}
80597 
80598     VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80599 
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80600     WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80601     {
80602       *this = rhs;
80603     }
80604 
80605 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
WriteDescriptorSetAccelerationStructureKHRVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80606     WriteDescriptorSetAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ )
80607     : accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() )
80608     {}
80609 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80610 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80611 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80612     WriteDescriptorSetAccelerationStructureKHR & operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80613     {
80614       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const *>( &rhs );
80615       return *this;
80616     }
80617 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80618     WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80619     {
80620       memcpy( static_cast<void *>( this ), &rhs, sizeof( WriteDescriptorSetAccelerationStructureKHR ) );
80621       return *this;
80622     }
80623 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80624     WriteDescriptorSetAccelerationStructureKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80625     {
80626       pNext = pNext_;
80627       return *this;
80628     }
80629 
setAccelerationStructureCountVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80630     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
80631     {
80632       accelerationStructureCount = accelerationStructureCount_;
80633       return *this;
80634     }
80635 
setPAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80636     WriteDescriptorSetAccelerationStructureKHR & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
80637     {
80638       pAccelerationStructures = pAccelerationStructures_;
80639       return *this;
80640     }
80641 
80642 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
setAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80643     WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
80644     {
80645       accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
80646       pAccelerationStructures = accelerationStructures_.data();
80647       return *this;
80648     }
80649 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80650 
80651 
operator VkWriteDescriptorSetAccelerationStructureKHR const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80652     operator VkWriteDescriptorSetAccelerationStructureKHR const&() const VULKAN_HPP_NOEXCEPT
80653     {
80654       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>( this );
80655     }
80656 
operator VkWriteDescriptorSetAccelerationStructureKHR&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80657     operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
80658     {
80659       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>( this );
80660     }
80661 
80662 
80663 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80664     auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const& ) const = default;
80665 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80666     bool operator==( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80667     {
80668       return ( sType == rhs.sType )
80669           && ( pNext == rhs.pNext )
80670           && ( accelerationStructureCount == rhs.accelerationStructureCount )
80671           && ( pAccelerationStructures == rhs.pAccelerationStructures );
80672     }
80673 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR80674     bool operator!=( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80675     {
80676       return !operator==( rhs );
80677     }
80678 #endif
80679 
80680 
80681 
80682   public:
80683     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
80684     const void* pNext = {};
80685     uint32_t accelerationStructureCount = {};
80686     const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures = {};
80687 
80688   };
80689   static_assert( sizeof( WriteDescriptorSetAccelerationStructureKHR ) == sizeof( VkWriteDescriptorSetAccelerationStructureKHR ), "struct and wrapper have different size!" );
80690   static_assert( std::is_standard_layout<WriteDescriptorSetAccelerationStructureKHR>::value, "struct wrapper is not a standard layout!" );
80691 
80692   template <>
80693   struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureKHR>
80694   {
80695     using Type = WriteDescriptorSetAccelerationStructureKHR;
80696   };
80697   using WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureKHR;
80698 
80699   struct WriteDescriptorSetInlineUniformBlockEXT
80700   {
80701     static const bool allowDuplicate = false;
80702     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
80703 
80704 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80705     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT(uint32_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT
80706     : dataSize( dataSize_ ), pData( pData_ )
80707     {}
80708 
80709     VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80710 
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80711     WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
80712     {
80713       *this = rhs;
80714     }
80715 
80716 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80717     template <typename T>
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80718     WriteDescriptorSetInlineUniformBlockEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ )
80719     : dataSize( static_cast<uint32_t>( data_.size() * sizeof(T) ) ), pData( data_.data() )
80720     {}
80721 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80722 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80723 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80724     WriteDescriptorSetInlineUniformBlockEXT & operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
80725     {
80726       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT const *>( &rhs );
80727       return *this;
80728     }
80729 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80730     WriteDescriptorSetInlineUniformBlockEXT & operator=( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT
80731     {
80732       memcpy( static_cast<void *>( this ), &rhs, sizeof( WriteDescriptorSetInlineUniformBlockEXT ) );
80733       return *this;
80734     }
80735 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80736     WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80737     {
80738       pNext = pNext_;
80739       return *this;
80740     }
80741 
setDataSizeVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80742     WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT
80743     {
80744       dataSize = dataSize_;
80745       return *this;
80746     }
80747 
setPDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80748     WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT
80749     {
80750       pData = pData_;
80751       return *this;
80752     }
80753 
80754 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80755     template <typename T>
setDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80756     WriteDescriptorSetInlineUniformBlockEXT & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
80757     {
80758       dataSize = static_cast<uint32_t>( data_.size() * sizeof(T) );
80759       pData = data_.data();
80760       return *this;
80761     }
80762 #endif  // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
80763 
80764 
operator VkWriteDescriptorSetInlineUniformBlockEXT const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80765     operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const VULKAN_HPP_NOEXCEPT
80766     {
80767       return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
80768     }
80769 
operator VkWriteDescriptorSetInlineUniformBlockEXT&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80770     operator VkWriteDescriptorSetInlineUniformBlockEXT &() VULKAN_HPP_NOEXCEPT
80771     {
80772       return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
80773     }
80774 
80775 
80776 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80777     auto operator<=>( WriteDescriptorSetInlineUniformBlockEXT const& ) const = default;
80778 #else
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80779     bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
80780     {
80781       return ( sType == rhs.sType )
80782           && ( pNext == rhs.pNext )
80783           && ( dataSize == rhs.dataSize )
80784           && ( pData == rhs.pData );
80785     }
80786 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT80787     bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT
80788     {
80789       return !operator==( rhs );
80790     }
80791 #endif
80792 
80793 
80794 
80795   public:
80796     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
80797     const void* pNext = {};
80798     uint32_t dataSize = {};
80799     const void* pData = {};
80800 
80801   };
80802   static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" );
80803   static_assert( std::is_standard_layout<WriteDescriptorSetInlineUniformBlockEXT>::value, "struct wrapper is not a standard layout!" );
80804 
80805   template <>
80806   struct CppType<StructureType, StructureType::eWriteDescriptorSetInlineUniformBlockEXT>
80807   {
80808     using Type = WriteDescriptorSetInlineUniformBlockEXT;
80809   };
80810 
80811 #ifdef VK_USE_PLATFORM_XCB_KHR
80812   struct XcbSurfaceCreateInfoKHR
80813   {
80814     static const bool allowDuplicate = false;
80815     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR;
80816 
80817 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80818     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {}, xcb_connection_t* connection_ = {}, xcb_window_t window_ = {}) VULKAN_HPP_NOEXCEPT
80819     : flags( flags_ ), connection( connection_ ), window( window_ )
80820     {}
80821 
80822     VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80823 
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80824     XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80825     {
80826       *this = rhs;
80827     }
80828 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80829 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80830     XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80831     {
80832       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const *>( &rhs );
80833       return *this;
80834     }
80835 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80836     XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80837     {
80838       memcpy( static_cast<void *>( this ), &rhs, sizeof( XcbSurfaceCreateInfoKHR ) );
80839       return *this;
80840     }
80841 
setPNextVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80842     XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80843     {
80844       pNext = pNext_;
80845       return *this;
80846     }
80847 
setFlagsVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80848     XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
80849     {
80850       flags = flags_;
80851       return *this;
80852     }
80853 
setConnectionVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80854     XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ ) VULKAN_HPP_NOEXCEPT
80855     {
80856       connection = connection_;
80857       return *this;
80858     }
80859 
setWindowVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80860     XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT
80861     {
80862       window = window_;
80863       return *this;
80864     }
80865 
80866 
operator VkXcbSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80867     operator VkXcbSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80868     {
80869       return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( this );
80870     }
80871 
operator VkXcbSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80872     operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
80873     {
80874       return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>( this );
80875     }
80876 
80877 
80878 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80879     auto operator<=>( XcbSurfaceCreateInfoKHR const& ) const = default;
80880 #else
operator ==VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80881     bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80882     {
80883       return ( sType == rhs.sType )
80884           && ( pNext == rhs.pNext )
80885           && ( flags == rhs.flags )
80886           && ( connection == rhs.connection )
80887           && ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 );
80888     }
80889 
operator !=VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR80890     bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80891     {
80892       return !operator==( rhs );
80893     }
80894 #endif
80895 
80896 
80897 
80898   public:
80899     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
80900     const void* pNext = {};
80901     VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {};
80902     xcb_connection_t* connection = {};
80903     xcb_window_t window = {};
80904 
80905   };
80906   static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
80907   static_assert( std::is_standard_layout<XcbSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
80908 
80909   template <>
80910   struct CppType<StructureType, StructureType::eXcbSurfaceCreateInfoKHR>
80911   {
80912     using Type = XcbSurfaceCreateInfoKHR;
80913   };
80914 #endif /*VK_USE_PLATFORM_XCB_KHR*/
80915 
80916 #ifdef VK_USE_PLATFORM_XLIB_KHR
80917   struct XlibSurfaceCreateInfoKHR
80918   {
80919     static const bool allowDuplicate = false;
80920     static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR;
80921 
80922 #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80923     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {}, Display* dpy_ = {}, Window window_ = {}) VULKAN_HPP_NOEXCEPT
80924     : flags( flags_ ), dpy( dpy_ ), window( window_ )
80925     {}
80926 
80927     VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
80928 
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80929     XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80930     {
80931       *this = rhs;
80932     }
80933 #endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
80934 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80935     XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80936     {
80937       *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const *>( &rhs );
80938       return *this;
80939     }
80940 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80941     XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
80942     {
80943       memcpy( static_cast<void *>( this ), &rhs, sizeof( XlibSurfaceCreateInfoKHR ) );
80944       return *this;
80945     }
80946 
setPNextVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80947     XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT
80948     {
80949       pNext = pNext_;
80950       return *this;
80951     }
80952 
setFlagsVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80953     XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
80954     {
80955       flags = flags_;
80956       return *this;
80957     }
80958 
setDpyVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80959     XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ ) VULKAN_HPP_NOEXCEPT
80960     {
80961       dpy = dpy_;
80962       return *this;
80963     }
80964 
setWindowVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80965     XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT
80966     {
80967       window = window_;
80968       return *this;
80969     }
80970 
80971 
operator VkXlibSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80972     operator VkXlibSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT
80973     {
80974       return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( this );
80975     }
80976 
operator VkXlibSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80977     operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
80978     {
80979       return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>( this );
80980     }
80981 
80982 
80983 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
80984     auto operator<=>( XlibSurfaceCreateInfoKHR const& ) const = default;
80985 #else
operator ==VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80986     bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80987     {
80988       return ( sType == rhs.sType )
80989           && ( pNext == rhs.pNext )
80990           && ( flags == rhs.flags )
80991           && ( dpy == rhs.dpy )
80992           && ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 );
80993     }
80994 
operator !=VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR80995     bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT
80996     {
80997       return !operator==( rhs );
80998     }
80999 #endif
81000 
81001 
81002 
81003   public:
81004     const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
81005     const void* pNext = {};
81006     VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {};
81007     Display* dpy = {};
81008     Window window = {};
81009 
81010   };
81011   static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
81012   static_assert( std::is_standard_layout<XlibSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
81013 
81014   template <>
81015   struct CppType<StructureType, StructureType::eXlibSurfaceCreateInfoKHR>
81016   {
81017     using Type = XlibSurfaceCreateInfoKHR;
81018   };
81019 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
81020 
81021   class DebugReportCallbackEXT
81022   {
81023   public:
81024     using CType = VkDebugReportCallbackEXT;
81025 
81026     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT;
81027     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
81028 
81029   public:
DebugReportCallbackEXT()81030     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() VULKAN_HPP_NOEXCEPT
81031       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
81032     {}
81033 
DebugReportCallbackEXT(std::nullptr_t)81034     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81035       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
81036     {}
81037 
DebugReportCallbackEXT(VkDebugReportCallbackEXT debugReportCallbackEXT)81038     VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT
81039       : m_debugReportCallbackEXT( debugReportCallbackEXT )
81040     {}
81041 
81042 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugReportCallbackEXT debugReportCallbackEXT)81043     DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT) VULKAN_HPP_NOEXCEPT
81044     {
81045       m_debugReportCallbackEXT = debugReportCallbackEXT;
81046       return *this;
81047     }
81048 #endif
81049 
operator =(std::nullptr_t)81050     DebugReportCallbackEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81051     {
81052       m_debugReportCallbackEXT = VK_NULL_HANDLE;
81053       return *this;
81054     }
81055 
81056 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81057     auto operator<=>( DebugReportCallbackEXT const& ) const = default;
81058 #else
operator ==(DebugReportCallbackEXT const & rhs) const81059     bool operator==( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81060     {
81061       return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT;
81062     }
81063 
operator !=(DebugReportCallbackEXT const & rhs) const81064     bool operator!=(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81065     {
81066       return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT;
81067     }
81068 
operator <(DebugReportCallbackEXT const & rhs) const81069     bool operator<(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81070     {
81071       return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT;
81072     }
81073 #endif
81074 
operator VkDebugReportCallbackEXT() const81075     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT
81076     {
81077       return m_debugReportCallbackEXT;
81078     }
81079 
operator bool() const81080     explicit operator bool() const VULKAN_HPP_NOEXCEPT
81081     {
81082       return m_debugReportCallbackEXT != VK_NULL_HANDLE;
81083     }
81084 
operator !() const81085     bool operator!() const VULKAN_HPP_NOEXCEPT
81086     {
81087       return m_debugReportCallbackEXT == VK_NULL_HANDLE;
81088     }
81089 
81090   private:
81091     VkDebugReportCallbackEXT m_debugReportCallbackEXT;
81092   };
81093   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" );
81094 
81095   template <>
81096   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugReportCallbackEXT>
81097   {
81098     using type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
81099   };
81100 
81101   template <>
81102   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT>
81103   {
81104     using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
81105   };
81106 
81107 
81108   template <>
81109   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT>
81110   {
81111     using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT;
81112   };
81113 
81114 
81115   template <>
81116   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
81117   {
81118     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
81119   };
81120 
81121   class DebugUtilsMessengerEXT
81122   {
81123   public:
81124     using CType = VkDebugUtilsMessengerEXT;
81125 
81126     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT;
81127     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
81128 
81129   public:
DebugUtilsMessengerEXT()81130     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() VULKAN_HPP_NOEXCEPT
81131       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
81132     {}
81133 
DebugUtilsMessengerEXT(std::nullptr_t)81134     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81135       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
81136     {}
81137 
DebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)81138     VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT
81139       : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT )
81140     {}
81141 
81142 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)81143     DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT) VULKAN_HPP_NOEXCEPT
81144     {
81145       m_debugUtilsMessengerEXT = debugUtilsMessengerEXT;
81146       return *this;
81147     }
81148 #endif
81149 
operator =(std::nullptr_t)81150     DebugUtilsMessengerEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81151     {
81152       m_debugUtilsMessengerEXT = VK_NULL_HANDLE;
81153       return *this;
81154     }
81155 
81156 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81157     auto operator<=>( DebugUtilsMessengerEXT const& ) const = default;
81158 #else
operator ==(DebugUtilsMessengerEXT const & rhs) const81159     bool operator==( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81160     {
81161       return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT;
81162     }
81163 
operator !=(DebugUtilsMessengerEXT const & rhs) const81164     bool operator!=(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81165     {
81166       return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT;
81167     }
81168 
operator <(DebugUtilsMessengerEXT const & rhs) const81169     bool operator<(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
81170     {
81171       return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT;
81172     }
81173 #endif
81174 
operator VkDebugUtilsMessengerEXT() const81175     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT
81176     {
81177       return m_debugUtilsMessengerEXT;
81178     }
81179 
operator bool() const81180     explicit operator bool() const VULKAN_HPP_NOEXCEPT
81181     {
81182       return m_debugUtilsMessengerEXT != VK_NULL_HANDLE;
81183     }
81184 
operator !() const81185     bool operator!() const VULKAN_HPP_NOEXCEPT
81186     {
81187       return m_debugUtilsMessengerEXT == VK_NULL_HANDLE;
81188     }
81189 
81190   private:
81191     VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT;
81192   };
81193   static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" );
81194 
81195   template <>
81196   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eDebugUtilsMessengerEXT>
81197   {
81198     using type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT;
81199   };
81200 
81201   template <>
81202   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT>
81203   {
81204     using Type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT;
81205   };
81206 
81207 
81208 
81209   template <>
81210   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
81211   {
81212     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
81213   };
81214 
81215 #ifndef VULKAN_HPP_NO_SMART_HANDLE
81216   class Instance;
81217   template <typename Dispatch> class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
81218   using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
81219   template <typename Dispatch> class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
81220   using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
81221   template <typename Dispatch> class UniqueHandleTraits<SurfaceKHR, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
81222   using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
81223 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81224 
81225   class Instance
81226   {
81227   public:
81228     using CType = VkInstance;
81229 
81230     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance;
81231     static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance;
81232 
81233   public:
Instance()81234     VULKAN_HPP_CONSTEXPR Instance() VULKAN_HPP_NOEXCEPT
81235       : m_instance(VK_NULL_HANDLE)
81236     {}
81237 
Instance(std::nullptr_t)81238     VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81239       : m_instance(VK_NULL_HANDLE)
81240     {}
81241 
Instance(VkInstance instance)81242     VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT
81243       : m_instance( instance )
81244     {}
81245 
81246 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkInstance instance)81247     Instance & operator=(VkInstance instance) VULKAN_HPP_NOEXCEPT
81248     {
81249       m_instance = instance;
81250       return *this;
81251     }
81252 #endif
81253 
operator =(std::nullptr_t)81254     Instance & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
81255     {
81256       m_instance = VK_NULL_HANDLE;
81257       return *this;
81258     }
81259 
81260 #if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
81261     auto operator<=>( Instance const& ) const = default;
81262 #else
operator ==(Instance const & rhs) const81263     bool operator==( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
81264     {
81265       return m_instance == rhs.m_instance;
81266     }
81267 
operator !=(Instance const & rhs) const81268     bool operator!=(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
81269     {
81270       return m_instance != rhs.m_instance;
81271     }
81272 
operator <(Instance const & rhs) const81273     bool operator<(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT
81274     {
81275       return m_instance < rhs.m_instance;
81276     }
81277 #endif
81278 
81279 
81280 #ifdef VK_USE_PLATFORM_ANDROID_KHR
81281     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81282     VULKAN_HPP_NODISCARD Result createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81283 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81284     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81285     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81286 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81287   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81288   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81289 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81290 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81291 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
81292 
81293 
81294     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81295     VULKAN_HPP_NODISCARD Result createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81296 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81297     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81298     typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::type createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81299 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81300   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81301   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81302 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81303 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81304 
81305 
81306     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81307     VULKAN_HPP_NODISCARD Result createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81308 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81309     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81310     typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::type createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81311 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81312   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81313   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81314 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81315 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81316 
81317 
81318 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
81319     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81320     VULKAN_HPP_NODISCARD Result createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81321 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81322     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81323     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createDirectFBSurfaceEXT( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81324 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81325   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81326   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81327 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81328 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81329 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
81330 
81331 
81332     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81333     VULKAN_HPP_NODISCARD Result createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81334 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81335     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81336     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81337 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81338   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81339   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81340 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81341 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81342 
81343 
81344     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81345     VULKAN_HPP_NODISCARD Result createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81346 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81347     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81348     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81349 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81350   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81351   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81352 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81353 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81354 
81355 
81356 #ifdef VK_USE_PLATFORM_IOS_MVK
81357     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81358     VULKAN_HPP_NODISCARD Result createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81359 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81360     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81361     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81362 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81363   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81364   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81365 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81366 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81367 #endif /*VK_USE_PLATFORM_IOS_MVK*/
81368 
81369 
81370 #ifdef VK_USE_PLATFORM_FUCHSIA
81371     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81372     VULKAN_HPP_NODISCARD Result createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81373 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81374     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81375     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81376 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81377   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81378   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81379 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81380 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81381 #endif /*VK_USE_PLATFORM_FUCHSIA*/
81382 
81383 
81384 #ifdef VK_USE_PLATFORM_MACOS_MVK
81385     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81386     VULKAN_HPP_NODISCARD Result createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81387 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81388     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81389     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81390 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81391   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81392   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81393 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81395 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
81396 
81397 
81398 #ifdef VK_USE_PLATFORM_METAL_EXT
81399     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81400     VULKAN_HPP_NODISCARD Result createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81401 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81402     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81403     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81404 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81405   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81406   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81407 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81408 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81409 #endif /*VK_USE_PLATFORM_METAL_EXT*/
81410 
81411 
81412 #ifdef VK_USE_PLATFORM_GGP
81413     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81414     VULKAN_HPP_NODISCARD Result createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81415 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81416     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81417     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81418 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81419   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81420   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81421 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81422 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81423 #endif /*VK_USE_PLATFORM_GGP*/
81424 
81425 
81426 #ifdef VK_USE_PLATFORM_VI_NN
81427     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81428     VULKAN_HPP_NODISCARD Result createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81429 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81430     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81431     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81432 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81433   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81434   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81435 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81436 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81437 #endif /*VK_USE_PLATFORM_VI_NN*/
81438 
81439 
81440 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
81441     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81442     VULKAN_HPP_NODISCARD Result createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81443 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81444     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81445     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81446 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81447   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81448   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81449 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81450 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81451 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
81452 
81453 
81454 #ifdef VK_USE_PLATFORM_WIN32_KHR
81455     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81456     VULKAN_HPP_NODISCARD Result createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81457 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81458     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81459     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81460 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81461   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81462   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81463 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81464 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81465 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
81466 
81467 
81468 #ifdef VK_USE_PLATFORM_XCB_KHR
81469     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81470     VULKAN_HPP_NODISCARD Result createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81472     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81473     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81474 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81475   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81476   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81477 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81478 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81479 #endif /*VK_USE_PLATFORM_XCB_KHR*/
81480 
81481 
81482 #ifdef VK_USE_PLATFORM_XLIB_KHR
81483     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81484     VULKAN_HPP_NODISCARD Result createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81485 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81486     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81487     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81488 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81489   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81490   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81491 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81492 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81493 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
81494 
81495 
81496     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81497     void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81499     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81500     void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81501 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81502 
81503 
81504     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81505     void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81506 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81507     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81508     void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81509 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81510 
81511 
81512     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81513     void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81514 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81515     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81516     void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81518 
81519 
81520     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81521     void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81522 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81523     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81524     void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81525 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81526 
81527 
81528     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81529     void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81530 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81531     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81532     void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81533 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81534 
81535 
81536     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81537     void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81538 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81539     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81540     void destroy( Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81541 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81542 
81543 
81544     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81545     void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81546 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81547     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81548     void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81550 
81551 
81552     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81553     void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81554 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81555     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81556     void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81557 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81558 
81559 
81560     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81561     VULKAN_HPP_NODISCARD Result enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81562 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81563     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81564     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type enumeratePhysicalDeviceGroups( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81565     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceGroupPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
81566     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81567 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81568 
81569     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81570     VULKAN_HPP_NODISCARD Result enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81571 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81572     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81573     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type enumeratePhysicalDeviceGroupsKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81574     template <typename PhysicalDeviceGroupPropertiesAllocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceGroupPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type = 0>
81575     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81576 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81577 
81578 
81579     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81580     VULKAN_HPP_NODISCARD Result enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81581 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81582     template <typename PhysicalDeviceAllocator = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81583     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type enumeratePhysicalDevices( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81584     template <typename PhysicalDeviceAllocator = std::allocator<PhysicalDevice>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceAllocator, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDevice>::value, int>::type = 0>
81585     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
81586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81587 
81588 
81589     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81590     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81591 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81592     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81593     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81594 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81595 
81596 
81597     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81598     void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81599 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81600     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81601     void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
81602 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81603 
operator VkInstance() const81604     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const VULKAN_HPP_NOEXCEPT
81605     {
81606       return m_instance;
81607     }
81608 
operator bool() const81609     explicit operator bool() const VULKAN_HPP_NOEXCEPT
81610     {
81611       return m_instance != VK_NULL_HANDLE;
81612     }
81613 
operator !() const81614     bool operator!() const VULKAN_HPP_NOEXCEPT
81615     {
81616       return m_instance == VK_NULL_HANDLE;
81617     }
81618 
81619   private:
81620     VkInstance m_instance;
81621   };
81622   static_assert( sizeof( VULKAN_HPP_NAMESPACE::Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" );
81623 
81624   template <>
81625   struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type<ObjectType::eInstance>
81626   {
81627     using type = VULKAN_HPP_NAMESPACE::Instance;
81628   };
81629 
81630   template <>
81631   struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eInstance>
81632   {
81633     using Type = VULKAN_HPP_NAMESPACE::Instance;
81634   };
81635 
81636 
81637   template <>
81638   struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance>
81639   {
81640     using Type = VULKAN_HPP_NAMESPACE::Instance;
81641   };
81642 
81643 
81644   template <>
81645   struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::Instance>
81646   {
81647     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
81648   };
81649 
81650 #ifndef VULKAN_HPP_NO_SMART_HANDLE
81651   template <typename Dispatch> class UniqueHandleTraits<Instance, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
81652   using UniqueInstance = UniqueHandle<Instance, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
81653 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81654 
81655 
81656     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81657     VULKAN_HPP_NODISCARD Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Instance* pInstance, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT;
81658 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81659     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81660     VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::Instance>::type createInstance( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81661 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81662   template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81663   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Instance, Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81664 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81665 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81666 
81667 
81668     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81669     VULKAN_HPP_NODISCARD Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT;
81670 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81671     template <typename ExtensionPropertiesAllocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81672     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81673     template <typename ExtensionPropertiesAllocator = std::allocator<ExtensionProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ExtensionPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type = 0>
81674     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81675 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81676 
81677 
81678     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81679     VULKAN_HPP_NODISCARD Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT;
81680 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81681     template <typename LayerPropertiesAllocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81682     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateInstanceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81683     template <typename LayerPropertiesAllocator = std::allocator<LayerProperties>, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = LayerPropertiesAllocator, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type = 0>
81684     VULKAN_HPP_NODISCARD typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81685 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81686 
81687 
81688     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81689     VULKAN_HPP_NODISCARD Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT;
81690 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81691     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
81692     typename ResultValueType<uint32_t>::type enumerateInstanceVersion( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT );
81693 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81694 
81695 
81696   template <typename Dispatch>
createInstance(const VULKAN_HPP_NAMESPACE::InstanceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Instance * pInstance,Dispatch const & d)81697   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Instance* pInstance, Dispatch const & d  ) VULKAN_HPP_NOEXCEPT
81698   {
81699     return static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkInstance *>( pInstance ) ) );
81700   }
81701 
81702 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81703   template <typename Dispatch>
createInstance(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)81704   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Instance>::type createInstance( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d )
81705   {
81706     VULKAN_HPP_NAMESPACE::Instance instance;
81707     Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance *>( &instance ) ) );
81708     return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstance" );
81709   }
81710 
81711 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
81712   template <typename Dispatch>
createInstanceUnique(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)81713   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Instance, Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d )
81714   {
81715     VULKAN_HPP_NAMESPACE::Instance instance;
81716     Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance *>( &instance ) ) );
81717     ObjectDestroy<NoParent, Dispatch> deleter( allocator, d );
81718     return createResultValue<VULKAN_HPP_NAMESPACE::Instance, Dispatch>( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstanceUnique", deleter );
81719   }
81720 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
81721 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81722 
81723 
81724   template <typename Dispatch>
enumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d)81725   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d  ) VULKAN_HPP_NOEXCEPT
81726   {
81727     return static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast< VkExtensionProperties *>( pProperties ) ) );
81728   }
81729 
81730 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81731   template <typename ExtensionPropertiesAllocator, typename Dispatch>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d)81732   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Dispatch const & d )
81733   {
81734     std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties;
81735     uint32_t propertyCount;
81736     Result result;
81737     do
81738     {
81739       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
81740       if ( ( result == Result::eSuccess ) && propertyCount )
81741       {
81742         properties.resize( propertyCount );
81743         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
81744         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81745       }
81746     } while ( result == Result::eIncomplete );
81747     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
81748     {
81749       properties.resize( propertyCount );
81750     }
81751     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
81752   }
81753 
81754   template <typename ExtensionPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type >
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,ExtensionPropertiesAllocator & extensionPropertiesAllocator,Dispatch const & d)81755   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d )
81756   {
81757     std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
81758     uint32_t propertyCount;
81759     Result result;
81760     do
81761     {
81762       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
81763       if ( ( result == Result::eSuccess ) && propertyCount )
81764       {
81765         properties.resize( propertyCount );
81766         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
81767         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81768       }
81769     } while ( result == Result::eIncomplete );
81770     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
81771     {
81772       properties.resize( propertyCount );
81773     }
81774     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
81775   }
81776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81777 
81778 
81779   template <typename Dispatch>
enumerateInstanceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d)81780   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d  ) VULKAN_HPP_NOEXCEPT
81781   {
81782     return static_cast<Result>( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast< VkLayerProperties *>( pProperties ) ) );
81783   }
81784 
81785 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81786   template <typename LayerPropertiesAllocator, typename Dispatch>
enumerateInstanceLayerProperties(Dispatch const & d)81787   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateInstanceLayerProperties( Dispatch const & d )
81788   {
81789     std::vector<LayerProperties, LayerPropertiesAllocator> properties;
81790     uint32_t propertyCount;
81791     Result result;
81792     do
81793     {
81794       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
81795       if ( ( result == Result::eSuccess ) && propertyCount )
81796       {
81797         properties.resize( propertyCount );
81798         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
81799         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81800       }
81801     } while ( result == Result::eIncomplete );
81802     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
81803     {
81804       properties.resize( propertyCount );
81805     }
81806     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
81807   }
81808 
81809   template <typename LayerPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type >
enumerateInstanceLayerProperties(LayerPropertiesAllocator & layerPropertiesAllocator,Dispatch const & d)81810   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d )
81811   {
81812     std::vector<LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
81813     uint32_t propertyCount;
81814     Result result;
81815     do
81816     {
81817       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
81818       if ( ( result == Result::eSuccess ) && propertyCount )
81819       {
81820         properties.resize( propertyCount );
81821         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
81822         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
81823       }
81824     } while ( result == Result::eIncomplete );
81825     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
81826     {
81827       properties.resize( propertyCount );
81828     }
81829     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
81830   }
81831 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81832 
81833 
81834   template <typename Dispatch>
enumerateInstanceVersion(uint32_t * pApiVersion,Dispatch const & d)81835   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d  ) VULKAN_HPP_NOEXCEPT
81836   {
81837     return static_cast<Result>( d.vkEnumerateInstanceVersion( pApiVersion ) );
81838   }
81839 
81840 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81841   template <typename Dispatch>
enumerateInstanceVersion(Dispatch const & d)81842   VULKAN_HPP_INLINE typename ResultValueType<uint32_t>::type enumerateInstanceVersion( Dispatch const & d )
81843   {
81844     uint32_t apiVersion;
81845     Result result = static_cast<Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
81846     return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" );
81847   }
81848 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81849 
81850 
81851   template <typename Dispatch>
begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo,Dispatch const & d) const81852   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81853   {
81854     return static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( pBeginInfo ) ) );
81855   }
81856 
81857 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81858   template <typename Dispatch>
begin(const CommandBufferBeginInfo & beginInfo,Dispatch const & d) const81859   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d ) const
81860   {
81861     Result result = static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) );
81862     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
81863   }
81864 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81865 
81866 
81867   template <typename Dispatch>
beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin,Dispatch const & d) const81868   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81869   {
81870     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( pConditionalRenderingBegin ) );
81871   }
81872 
81873 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81874   template <typename Dispatch>
beginConditionalRenderingEXT(const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin,Dispatch const & d) const81875   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81876   {
81877     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( &conditionalRenderingBegin ) );
81878   }
81879 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81880 
81881 
81882   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const81883   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81884   {
81885     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
81886   }
81887 
81888 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81889   template <typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const81890   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81891   {
81892     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
81893   }
81894 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81895 
81896 
81897   template <typename Dispatch>
beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,Dispatch const & d) const81898   VULKAN_HPP_INLINE void CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81899   {
81900     d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
81901   }
81902 
81903 
81904   template <typename Dispatch>
beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,uint32_t index,Dispatch const & d) const81905   VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81906   {
81907     d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
81908   }
81909 
81910 
81911   template <typename Dispatch>
beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const81912   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81913   {
81914     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), static_cast<VkSubpassContents>( contents ) );
81915   }
81916 
81917 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81918   template <typename Dispatch>
beginRenderPass(const RenderPassBeginInfo & renderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const81919   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81920   {
81921     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), static_cast<VkSubpassContents>( contents ) );
81922   }
81923 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81924 
81925 
81926   template <typename Dispatch>
beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const81927   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81928   {
81929     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
81930   }
81931 
81932 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81933   template <typename Dispatch>
beginRenderPass2(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const81934   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81935   {
81936     d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
81937   }
81938 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81939 
81940   template <typename Dispatch>
beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const81941   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81942   {
81943     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
81944   }
81945 
81946 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81947   template <typename Dispatch>
beginRenderPass2KHR(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const81948   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81949   {
81950     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
81951   }
81952 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81953 
81954 
81955   template <typename Dispatch>
beginTransformFeedbackEXT(uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VULKAN_HPP_NAMESPACE::Buffer * pCounterBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets,Dispatch const & d) const81956   VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81957   {
81958     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer *>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
81959   }
81960 
81961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81962   template <typename Dispatch>
beginTransformFeedbackEXT(uint32_t firstCounterBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets,Dispatch const & d) const81963   VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
81964   {
81965 #ifdef VULKAN_HPP_NO_EXCEPTIONS
81966     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
81967 #else
81968     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
81969   {
81970     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
81971   }
81972 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
81973 
81974     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
81975   }
81976 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81977 
81978 
81979   template <typename Dispatch>
bindDescriptorSets(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets,Dispatch const & d) const81980   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81981   {
81982     d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), firstSet, descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets );
81983   }
81984 
81985 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
81986   template <typename Dispatch>
bindDescriptorSets(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,ArrayProxy<const uint32_t> const & dynamicOffsets,Dispatch const & d) const81987   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, ArrayProxy<const uint32_t> const & dynamicOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
81988   {
81989     d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), firstSet, descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ), dynamicOffsets.size(), dynamicOffsets.data() );
81990   }
81991 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
81992 
81993 
81994   template <typename Dispatch>
bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::IndexType indexType,Dispatch const & d) const81995   VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
81996   {
81997     d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
81998   }
81999 
82000 
82001   template <typename Dispatch>
bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,Dispatch const & d) const82002   VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82003   {
82004     d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
82005   }
82006 
82007 
82008   template <typename Dispatch>
bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t groupIndex,Dispatch const & d) const82009   VULKAN_HPP_INLINE void CommandBuffer::bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82010   {
82011     d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ), groupIndex );
82012   }
82013 
82014 
82015   template <typename Dispatch>
bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,Dispatch const & d) const82016   VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82017   {
82018     d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
82019   }
82020 
82021 
82022   template <typename Dispatch>
bindTransformFeedbackBuffersEXT(uint32_t firstBinding,uint32_t bindingCount,const VULKAN_HPP_NAMESPACE::Buffer * pBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,Dispatch const & d) const82023   VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82024   {
82025     d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer *>( pBuffers ), reinterpret_cast<const VkDeviceSize *>( pOffsets ), reinterpret_cast<const VkDeviceSize *>( pSizes ) );
82026   }
82027 
82028 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82029   template <typename Dispatch>
bindTransformFeedbackBuffersEXT(uint32_t firstBinding,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,Dispatch const & d) const82030   VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
82031   {
82032 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82033     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
82034     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
82035 #else
82036     if ( buffers.size() != offsets.size() )
82037   {
82038     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" );
82039   }
82040     if ( !sizes.empty() && buffers.size() != sizes.size() )
82041   {
82042     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" );
82043   }
82044 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82045 
82046     d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast<const VkBuffer *>( buffers.data() ), reinterpret_cast<const VkDeviceSize *>( offsets.data() ), reinterpret_cast<const VkDeviceSize *>( sizes.data() ) );
82047   }
82048 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82049 
82050 
82051   template <typename Dispatch>
bindVertexBuffers(uint32_t firstBinding,uint32_t bindingCount,const VULKAN_HPP_NAMESPACE::Buffer * pBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,Dispatch const & d) const82052   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82053   {
82054     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer *>( pBuffers ), reinterpret_cast<const VkDeviceSize *>( pOffsets ) );
82055   }
82056 
82057 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82058   template <typename Dispatch>
bindVertexBuffers(uint32_t firstBinding,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,Dispatch const & d) const82059   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
82060   {
82061 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82062     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
82063 #else
82064     if ( buffers.size() != offsets.size() )
82065   {
82066     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" );
82067   }
82068 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82069 
82070     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast<const VkBuffer *>( buffers.data() ), reinterpret_cast<const VkDeviceSize *>( offsets.data() ) );
82071   }
82072 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82073 
82074 
82075   template <typename Dispatch>
bindVertexBuffers2EXT(uint32_t firstBinding,uint32_t bindingCount,const VULKAN_HPP_NAMESPACE::Buffer * pBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,const VULKAN_HPP_NAMESPACE::DeviceSize * pStrides,Dispatch const & d) const82076   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, const VULKAN_HPP_NAMESPACE::DeviceSize* pStrides, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82077   {
82078     d.vkCmdBindVertexBuffers2EXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer *>( pBuffers ), reinterpret_cast<const VkDeviceSize *>( pOffsets ), reinterpret_cast<const VkDeviceSize *>( pSizes ), reinterpret_cast<const VkDeviceSize *>( pStrides ) );
82079   }
82080 
82081 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82082   template <typename Dispatch>
bindVertexBuffers2EXT(uint32_t firstBinding,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides,Dispatch const & d) const82083   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
82084   {
82085 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82086     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
82087     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
82088     VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
82089 #else
82090     if ( buffers.size() != offsets.size() )
82091   {
82092     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" );
82093   }
82094     if ( !sizes.empty() && buffers.size() != sizes.size() )
82095   {
82096     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" );
82097   }
82098     if ( !strides.empty() && buffers.size() != strides.size() )
82099   {
82100     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" );
82101   }
82102 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82103 
82104     d.vkCmdBindVertexBuffers2EXT( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast<const VkBuffer *>( buffers.data() ), reinterpret_cast<const VkDeviceSize *>( offsets.data() ), reinterpret_cast<const VkDeviceSize *>( sizes.data() ), reinterpret_cast<const VkDeviceSize *>( strides.data() ) );
82105   }
82106 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82107 
82108 
82109   template <typename Dispatch>
blitImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::ImageBlit * pRegions,VULKAN_HPP_NAMESPACE::Filter filter,Dispatch const & d) const82110   VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageBlit* pRegions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82111   {
82112     d.vkCmdBlitImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkImageBlit *>( pRegions ), static_cast<VkFilter>( filter ) );
82113   }
82114 
82115 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82116   template <typename Dispatch>
blitImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions,VULKAN_HPP_NAMESPACE::Filter filter,Dispatch const & d) const82117   VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82118   {
82119     d.vkCmdBlitImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size(), reinterpret_cast<const VkImageBlit *>( regions.data() ), static_cast<VkFilter>( filter ) );
82120   }
82121 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82122 
82123 
82124   template <typename Dispatch>
blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR * pBlitImageInfo,Dispatch const & d) const82125   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82126   {
82127     d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( pBlitImageInfo ) );
82128   }
82129 
82130 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82131   template <typename Dispatch>
blitImage2KHR(const BlitImageInfo2KHR & blitImageInfo,Dispatch const & d) const82132   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82133   {
82134     d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2KHR *>( &blitImageInfo ) );
82135   }
82136 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82137 
82138 
82139 #ifdef VK_ENABLE_BETA_EXTENSIONS
82140   template <typename Dispatch>
buildAccelerationStructureIndirectKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfo,VULKAN_HPP_NAMESPACE::Buffer indirectBuffer,VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset,uint32_t indirectStride,Dispatch const & d) const82141   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureIndirectKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::Buffer indirectBuffer, VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset, uint32_t indirectStride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82142   {
82143     d.vkCmdBuildAccelerationStructureIndirectKHR( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfo ), static_cast<VkBuffer>( indirectBuffer ), static_cast<VkDeviceSize>( indirectOffset ), indirectStride );
82144   }
82145 
82146 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82147   template <typename Dispatch>
buildAccelerationStructureIndirectKHR(const AccelerationStructureBuildGeometryInfoKHR & info,VULKAN_HPP_NAMESPACE::Buffer indirectBuffer,VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset,uint32_t indirectStride,Dispatch const & d) const82148   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureIndirectKHR( const AccelerationStructureBuildGeometryInfoKHR & info, VULKAN_HPP_NAMESPACE::Buffer indirectBuffer, VULKAN_HPP_NAMESPACE::DeviceSize indirectOffset, uint32_t indirectStride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82149   {
82150     d.vkCmdBuildAccelerationStructureIndirectKHR( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( &info ), static_cast<VkBuffer>( indirectBuffer ), static_cast<VkDeviceSize>( indirectOffset ), indirectStride );
82151   }
82152 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82153 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82154 
82155 
82156 #ifdef VK_ENABLE_BETA_EXTENSIONS
82157   template <typename Dispatch>
buildAccelerationStructureKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos,Dispatch const & d) const82158   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82159   {
82160     d.vkCmdBuildAccelerationStructureKHR( m_commandBuffer, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( ppOffsetInfos ) );
82161   }
82162 
82163 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82164   template <typename Dispatch>
buildAccelerationStructureKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const> const & pOffsetInfos,Dispatch const & d) const82165   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const > const & pOffsetInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
82166   {
82167 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82168     VULKAN_HPP_ASSERT( infos.size() == pOffsetInfos.size() );
82169 #else
82170     if ( infos.size() != pOffsetInfos.size() )
82171   {
82172     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructureKHR: infos.size() != pOffsetInfos.size()" );
82173   }
82174 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82175 
82176     d.vkCmdBuildAccelerationStructureKHR( m_commandBuffer, infos.size(), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( pOffsetInfos.data() ) );
82177   }
82178 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82179 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82180 
82181 
82182   template <typename Dispatch>
buildAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV * pInfo,VULKAN_HPP_NAMESPACE::Buffer instanceData,VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset,VULKAN_HPP_NAMESPACE::Bool32 update,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src,VULKAN_HPP_NAMESPACE::Buffer scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,Dispatch const & d) const82183   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82184   {
82185     d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV *>( pInfo ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureKHR>( dst ), static_cast<VkAccelerationStructureKHR>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
82186   }
82187 
82188 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82189   template <typename Dispatch>
buildAccelerationStructureNV(const AccelerationStructureInfoNV & info,VULKAN_HPP_NAMESPACE::Buffer instanceData,VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset,VULKAN_HPP_NAMESPACE::Bool32 update,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src,VULKAN_HPP_NAMESPACE::Buffer scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,Dispatch const & d) const82190   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82191   {
82192     d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV *>( &info ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureKHR>( dst ), static_cast<VkAccelerationStructureKHR>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
82193   }
82194 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82195 
82196 
82197   template <typename Dispatch>
clearAttachments(uint32_t attachmentCount,const VULKAN_HPP_NAMESPACE::ClearAttachment * pAttachments,uint32_t rectCount,const VULKAN_HPP_NAMESPACE::ClearRect * pRects,Dispatch const & d) const82198   VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( uint32_t attachmentCount, const VULKAN_HPP_NAMESPACE::ClearAttachment* pAttachments, uint32_t rectCount, const VULKAN_HPP_NAMESPACE::ClearRect* pRects, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82199   {
82200     d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast<const VkClearAttachment *>( pAttachments ), rectCount, reinterpret_cast<const VkClearRect *>( pRects ) );
82201   }
82202 
82203 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82204   template <typename Dispatch>
clearAttachments(ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments,ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects,Dispatch const & d) const82205   VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments, ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82206   {
82207     d.vkCmdClearAttachments( m_commandBuffer, attachments.size(), reinterpret_cast<const VkClearAttachment *>( attachments.data() ), rects.size(), reinterpret_cast<const VkClearRect *>( rects.data() ) );
82208   }
82209 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82210 
82211 
82212   template <typename Dispatch>
clearColorImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearColorValue * pColor,uint32_t rangeCount,const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges,Dispatch const & d) const82213   VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearColorValue* pColor, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82214   {
82215     d.vkCmdClearColorImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearColorValue *>( pColor ), rangeCount, reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
82216   }
82217 
82218 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82219   template <typename Dispatch>
clearColorImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const ClearColorValue & color,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges,Dispatch const & d) const82220   VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82221   {
82222     d.vkCmdClearColorImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearColorValue *>( &color ), ranges.size(), reinterpret_cast<const VkImageSubresourceRange *>( ranges.data() ) );
82223   }
82224 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82225 
82226 
82227   template <typename Dispatch>
clearDepthStencilImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges,Dispatch const & d) const82228   VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82229   {
82230     d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearDepthStencilValue *>( pDepthStencil ), rangeCount, reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
82231   }
82232 
82233 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82234   template <typename Dispatch>
clearDepthStencilImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const ClearDepthStencilValue & depthStencil,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges,Dispatch const & d) const82235   VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82236   {
82237     d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearDepthStencilValue *>( &depthStencil ), ranges.size(), reinterpret_cast<const VkImageSubresourceRange *>( ranges.data() ) );
82238   }
82239 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82240 
82241 
82242 #ifdef VK_ENABLE_BETA_EXTENSIONS
82243   template <typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const82244   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82245   {
82246     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) );
82247   }
82248 
82249 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82250   template <typename Dispatch>
copyAccelerationStructureKHR(const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const82251   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82252   {
82253     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) );
82254   }
82255 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82256 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82257 
82258 
82259   template <typename Dispatch>
copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src,VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode,Dispatch const & d) const82260   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82261   {
82262     d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureKHR>( dst ), static_cast<VkAccelerationStructureKHR>( src ), static_cast<VkCopyAccelerationStructureModeKHR>( mode ) );
82263   }
82264 
82265 
82266 #ifdef VK_ENABLE_BETA_EXTENSIONS
82267   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const82268   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82269   {
82270     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) );
82271   }
82272 
82273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82274   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const82275   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82276   {
82277     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) );
82278   }
82279 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82280 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82281 
82282 
82283   template <typename Dispatch>
copyBuffer(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::BufferCopy * pRegions,Dispatch const & d) const82284   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferCopy* pRegions, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82285   {
82286     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferCopy *>( pRegions ) );
82287   }
82288 
82289 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82290   template <typename Dispatch>
copyBuffer(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions,Dispatch const & d) const82291   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82292   {
82293     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regions.size(), reinterpret_cast<const VkBufferCopy *>( regions.data() ) );
82294   }
82295 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82296 
82297 
82298   template <typename Dispatch>
copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR * pCopyBufferInfo,Dispatch const & d) const82299   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82300   {
82301     d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( pCopyBufferInfo ) );
82302   }
82303 
82304 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82305   template <typename Dispatch>
copyBuffer2KHR(const CopyBufferInfo2KHR & copyBufferInfo,Dispatch const & d) const82306   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82307   {
82308     d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2KHR *>( &copyBufferInfo ) );
82309   }
82310 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82311 
82312 
82313   template <typename Dispatch>
copyBufferToImage(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions,Dispatch const & d) const82314   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82315   {
82316     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
82317   }
82318 
82319 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82320   template <typename Dispatch>
copyBufferToImage(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions,Dispatch const & d) const82321   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82322   {
82323     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size(), reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
82324   }
82325 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82326 
82327 
82328   template <typename Dispatch>
copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR * pCopyBufferToImageInfo,Dispatch const & d) const82329   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82330   {
82331     d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( pCopyBufferToImageInfo ) );
82332   }
82333 
82334 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82335   template <typename Dispatch>
copyBufferToImage2KHR(const CopyBufferToImageInfo2KHR & copyBufferToImageInfo,Dispatch const & d) const82336   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82337   {
82338     d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( &copyBufferToImageInfo ) );
82339   }
82340 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82341 
82342 
82343   template <typename Dispatch>
copyImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::ImageCopy * pRegions,Dispatch const & d) const82344   VULKAN_HPP_INLINE void CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageCopy* pRegions, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82345   {
82346     d.vkCmdCopyImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkImageCopy *>( pRegions ) );
82347   }
82348 
82349 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82350   template <typename Dispatch>
copyImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions,Dispatch const & d) const82351   VULKAN_HPP_INLINE void CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82352   {
82353     d.vkCmdCopyImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size(), reinterpret_cast<const VkImageCopy *>( regions.data() ) );
82354   }
82355 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82356 
82357 
82358   template <typename Dispatch>
copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR * pCopyImageInfo,Dispatch const & d) const82359   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82360   {
82361     d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( pCopyImageInfo ) );
82362   }
82363 
82364 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82365   template <typename Dispatch>
copyImage2KHR(const CopyImageInfo2KHR & copyImageInfo,Dispatch const & d) const82366   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82367   {
82368     d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2KHR *>( &copyImageInfo ) );
82369   }
82370 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82371 
82372 
82373   template <typename Dispatch>
copyImageToBuffer(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions,Dispatch const & d) const82374   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82375   {
82376     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
82377   }
82378 
82379 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82380   template <typename Dispatch>
copyImageToBuffer(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions,Dispatch const & d) const82381   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82382   {
82383     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regions.size(), reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
82384   }
82385 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82386 
82387 
82388   template <typename Dispatch>
copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR * pCopyImageToBufferInfo,Dispatch const & d) const82389   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82390   {
82391     d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( pCopyImageToBufferInfo ) );
82392   }
82393 
82394 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82395   template <typename Dispatch>
copyImageToBuffer2KHR(const CopyImageToBufferInfo2KHR & copyImageToBufferInfo,Dispatch const & d) const82396   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82397   {
82398     d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( &copyImageToBufferInfo ) );
82399   }
82400 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82401 
82402 
82403 #ifdef VK_ENABLE_BETA_EXTENSIONS
82404   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const82405   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82406   {
82407     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) );
82408   }
82409 
82410 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82411   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const82412   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82413   {
82414     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) );
82415   }
82416 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82417 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
82418 
82419 
82420   template <typename Dispatch>
copyQueryPoolResults(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const82421   VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82422   {
82423     d.vkCmdCopyQueryPoolResults( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) );
82424   }
82425 
82426 
82427   template <typename Dispatch>
debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const82428   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82429   {
82430     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
82431   }
82432 
82433 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82434   template <typename Dispatch>
debugMarkerBeginEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const82435   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82436   {
82437     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
82438   }
82439 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82440 
82441 
82442   template <typename Dispatch>
debugMarkerEndEXT(Dispatch const & d) const82443   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82444   {
82445     d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
82446   }
82447 
82448 
82449   template <typename Dispatch>
debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const82450   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82451   {
82452     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
82453   }
82454 
82455 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82456   template <typename Dispatch>
debugMarkerInsertEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const82457   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82458   {
82459     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
82460   }
82461 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82462 
82463 
82464   template <typename Dispatch>
dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const82465   VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82466   {
82467     d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
82468   }
82469 
82470 
82471   template <typename Dispatch>
dispatchBase(uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const82472   VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82473   {
82474     d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
82475   }
82476 
82477   template <typename Dispatch>
dispatchBaseKHR(uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const82478   VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82479   {
82480     d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
82481   }
82482 
82483 
82484   template <typename Dispatch>
dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const82485   VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82486   {
82487     d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
82488   }
82489 
82490 
82491   template <typename Dispatch>
draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance,Dispatch const & d) const82492   VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82493   {
82494     d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
82495   }
82496 
82497 
82498   template <typename Dispatch>
drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance,Dispatch const & d) const82499   VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82500   {
82501     d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
82502   }
82503 
82504 
82505   template <typename Dispatch>
drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const82506   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82507   {
82508     d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
82509   }
82510 
82511 
82512   template <typename Dispatch>
drawIndexedIndirectCount(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const82513   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82514   {
82515     d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82516   }
82517 
82518   template <typename Dispatch>
drawIndexedIndirectCountAMD(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const82519   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82520   {
82521     d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82522   }
82523 
82524   template <typename Dispatch>
drawIndexedIndirectCountKHR(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const82525   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82526   {
82527     d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82528   }
82529 
82530 
82531   template <typename Dispatch>
drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const82532   VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82533   {
82534     d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
82535   }
82536 
82537 
82538   template <typename Dispatch>
drawIndirectByteCountEXT(uint32_t instanceCount,uint32_t firstInstance,VULKAN_HPP_NAMESPACE::Buffer counterBuffer,VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride,Dispatch const & d) const82539   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VULKAN_HPP_NAMESPACE::Buffer counterBuffer, VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82540   {
82541     d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
82542   }
82543 
82544 
82545   template <typename Dispatch>
drawIndirectCount(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const82546   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82547   {
82548     d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82549   }
82550 
82551   template <typename Dispatch>
drawIndirectCountAMD(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const82552   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82553   {
82554     d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82555   }
82556 
82557   template <typename Dispatch>
drawIndirectCountKHR(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const82558   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82559   {
82560     d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82561   }
82562 
82563 
82564   template <typename Dispatch>
drawMeshTasksIndirectCountNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const82565   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82566   {
82567     d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
82568   }
82569 
82570 
82571   template <typename Dispatch>
drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const82572   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82573   {
82574     d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
82575   }
82576 
82577 
82578   template <typename Dispatch>
drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask,Dispatch const & d) const82579   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82580   {
82581     d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
82582   }
82583 
82584 
82585   template <typename Dispatch>
endConditionalRenderingEXT(Dispatch const & d) const82586   VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82587   {
82588     d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
82589   }
82590 
82591 
82592   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const82593   VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82594   {
82595     d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
82596   }
82597 
82598 
82599   template <typename Dispatch>
endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const82600   VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82601   {
82602     d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
82603   }
82604 
82605 
82606   template <typename Dispatch>
endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,uint32_t index,Dispatch const & d) const82607   VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82608   {
82609     d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
82610   }
82611 
82612 
82613   template <typename Dispatch>
endRenderPass(Dispatch const & d) const82614   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82615   {
82616     d.vkCmdEndRenderPass( m_commandBuffer );
82617   }
82618 
82619 
82620   template <typename Dispatch>
endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const82621   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82622   {
82623     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
82624   }
82625 
82626 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82627   template <typename Dispatch>
endRenderPass2(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const82628   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82629   {
82630     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
82631   }
82632 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82633 
82634   template <typename Dispatch>
endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const82635   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82636   {
82637     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
82638   }
82639 
82640 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82641   template <typename Dispatch>
endRenderPass2KHR(const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const82642   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82643   {
82644     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
82645   }
82646 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82647 
82648 
82649   template <typename Dispatch>
endTransformFeedbackEXT(uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VULKAN_HPP_NAMESPACE::Buffer * pCounterBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets,Dispatch const & d) const82650   VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82651   {
82652     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer *>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
82653   }
82654 
82655 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82656   template <typename Dispatch>
endTransformFeedbackEXT(uint32_t firstCounterBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets,Dispatch const & d) const82657   VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
82658   {
82659 #ifdef VULKAN_HPP_NO_EXCEPTIONS
82660     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
82661 #else
82662     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
82663   {
82664     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
82665   }
82666 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
82667 
82668     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
82669   }
82670 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82671 
82672 
82673   template <typename Dispatch>
executeCommands(uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const82674   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82675   {
82676     d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
82677   }
82678 
82679 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82680   template <typename Dispatch>
executeCommands(ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const82681   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82682   {
82683     d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
82684   }
82685 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82686 
82687 
82688   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const82689   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82690   {
82691     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
82692   }
82693 
82694 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82695   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const82696   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82697   {
82698     d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
82699   }
82700 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82701 
82702 
82703   template <typename Dispatch>
fillBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::DeviceSize size,uint32_t data,Dispatch const & d) const82704   VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82705   {
82706     d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
82707   }
82708 
82709 
82710   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const82711   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82712   {
82713     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
82714   }
82715 
82716 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82717   template <typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const82718   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82719   {
82720     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
82721   }
82722 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82723 
82724 
82725   template <typename Dispatch>
nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const82726   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82727   {
82728     d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
82729   }
82730 
82731 
82732   template <typename Dispatch>
nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const82733   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82734   {
82735     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
82736   }
82737 
82738 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82739   template <typename Dispatch>
nextSubpass2(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const82740   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82741   {
82742     d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
82743   }
82744 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82745 
82746   template <typename Dispatch>
nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const82747   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82748   {
82749     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
82750   }
82751 
82752 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82753   template <typename Dispatch>
nextSubpass2KHR(const SubpassBeginInfo & subpassBeginInfo,const SubpassEndInfo & subpassEndInfo,Dispatch const & d) const82754   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82755   {
82756     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
82757   }
82758 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82759 
82760 
82761   template <typename Dispatch>
pipelineBarrier(VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VULKAN_HPP_NAMESPACE::MemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers,Dispatch const & d) const82762   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82763   {
82764     d.vkCmdPipelineBarrier( m_commandBuffer, static_cast<VkPipelineStageFlags>( srcStageMask ), static_cast<VkPipelineStageFlags>( dstStageMask ), static_cast<VkDependencyFlags>( dependencyFlags ), memoryBarrierCount, reinterpret_cast<const VkMemoryBarrier *>( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast<const VkBufferMemoryBarrier *>( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast<const VkImageMemoryBarrier *>( pImageMemoryBarriers ) );
82765   }
82766 
82767 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82768   template <typename Dispatch>
pipelineBarrier(VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags,ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers,Dispatch const & d) const82769   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82770   {
82771     d.vkCmdPipelineBarrier( m_commandBuffer, static_cast<VkPipelineStageFlags>( srcStageMask ), static_cast<VkPipelineStageFlags>( dstStageMask ), static_cast<VkDependencyFlags>( dependencyFlags ), memoryBarriers.size(), reinterpret_cast<const VkMemoryBarrier *>( memoryBarriers.data() ), bufferMemoryBarriers.size(), reinterpret_cast<const VkBufferMemoryBarrier *>( bufferMemoryBarriers.data() ), imageMemoryBarriers.size(), reinterpret_cast<const VkImageMemoryBarrier *>( imageMemoryBarriers.data() ) );
82772   }
82773 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82774 
82775 
82776   template <typename Dispatch>
preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const82777   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82778   {
82779     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
82780   }
82781 
82782 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82783   template <typename Dispatch>
preprocessGeneratedCommandsNV(const GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const82784   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82785   {
82786     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
82787   }
82788 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82789 
82790 
82791   template <typename Dispatch>
pushConstants(VULKAN_HPP_NAMESPACE::PipelineLayout layout,VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues,Dispatch const & d) const82792   VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82793   {
82794     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, size, pValues );
82795   }
82796 
82797 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82798   template <typename T, typename Dispatch>
pushConstants(VULKAN_HPP_NAMESPACE::PipelineLayout layout,VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,uint32_t offset,ArrayProxy<const T> const & values,Dispatch const & d) const82799   VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy<const T> const & values, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82800   {
82801     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, values.size() * sizeof( T ), reinterpret_cast<const void *>( values.data() ) );
82802   }
82803 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82804 
82805 
82806   template <typename Dispatch>
pushDescriptorSetKHR(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites,Dispatch const & d) const82807   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82808   {
82809     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ) );
82810   }
82811 
82812 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82813   template <typename Dispatch>
pushDescriptorSetKHR(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,Dispatch const & d) const82814   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82815   {
82816     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWrites.size(), reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ) );
82817   }
82818 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82819 
82820 
82821   template <typename Dispatch>
pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const82822   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82823   {
82824     d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
82825   }
82826 
82827 
82828   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const82829   VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82830   {
82831     d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
82832   }
82833 
82834 
82835   template <typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const82836   VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82837   {
82838     d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
82839   }
82840 
82841 
82842   template <typename Dispatch>
resolveImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::ImageResolve * pRegions,Dispatch const & d) const82843   VULKAN_HPP_INLINE void CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageResolve* pRegions, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82844   {
82845     d.vkCmdResolveImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkImageResolve *>( pRegions ) );
82846   }
82847 
82848 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82849   template <typename Dispatch>
resolveImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions,Dispatch const & d) const82850   VULKAN_HPP_INLINE void CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82851   {
82852     d.vkCmdResolveImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size(), reinterpret_cast<const VkImageResolve *>( regions.data() ) );
82853   }
82854 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82855 
82856 
82857   template <typename Dispatch>
resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR * pResolveImageInfo,Dispatch const & d) const82858   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82859   {
82860     d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( pResolveImageInfo ) );
82861   }
82862 
82863 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82864   template <typename Dispatch>
resolveImage2KHR(const ResolveImageInfo2KHR & resolveImageInfo,Dispatch const & d) const82865   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82866   {
82867     d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2KHR *>( &resolveImageInfo ) );
82868   }
82869 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82870 
82871 
82872   template <typename Dispatch>
setBlendConstants(const float blendConstants[4],Dispatch const & d) const82873   VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82874   {
82875     d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
82876   }
82877 
82878 
82879   template <typename Dispatch>
setCheckpointNV(const void * pCheckpointMarker,Dispatch const & d) const82880   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82881   {
82882     d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
82883   }
82884 
82885 
82886   template <typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders,Dispatch const & d) const82887   VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82888   {
82889     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrderCount, reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( pCustomSampleOrders ) );
82890   }
82891 
82892 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82893   template <typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders,Dispatch const & d) const82894   VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82895   {
82896     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrders.size(), reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( customSampleOrders.data() ) );
82897   }
82898 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82899 
82900 
82901   template <typename Dispatch>
setCullModeEXT(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode,Dispatch const & d) const82902   VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82903   {
82904     d.vkCmdSetCullModeEXT( m_commandBuffer, static_cast<VkCullModeFlags>( cullMode ) );
82905   }
82906 
82907 
82908   template <typename Dispatch>
setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor,Dispatch const & d) const82909   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82910   {
82911     d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
82912   }
82913 
82914 
82915   template <typename Dispatch>
setDepthBounds(float minDepthBounds,float maxDepthBounds,Dispatch const & d) const82916   VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82917   {
82918     d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
82919   }
82920 
82921 
82922   template <typename Dispatch>
setDepthBoundsTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,Dispatch const & d) const82923   VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82924   {
82925     d.vkCmdSetDepthBoundsTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthBoundsTestEnable ) );
82926   }
82927 
82928 
82929   template <typename Dispatch>
setDepthCompareOpEXT(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp,Dispatch const & d) const82930   VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82931   {
82932     d.vkCmdSetDepthCompareOpEXT( m_commandBuffer, static_cast<VkCompareOp>( depthCompareOp ) );
82933   }
82934 
82935 
82936   template <typename Dispatch>
setDepthTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable,Dispatch const & d) const82937   VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82938   {
82939     d.vkCmdSetDepthTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthTestEnable ) );
82940   }
82941 
82942 
82943   template <typename Dispatch>
setDepthWriteEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable,Dispatch const & d) const82944   VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82945   {
82946     d.vkCmdSetDepthWriteEnableEXT( m_commandBuffer, static_cast<VkBool32>( depthWriteEnable ) );
82947   }
82948 
82949 
82950   template <typename Dispatch>
setDeviceMask(uint32_t deviceMask,Dispatch const & d) const82951   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82952   {
82953     d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
82954   }
82955 
82956   template <typename Dispatch>
setDeviceMaskKHR(uint32_t deviceMask,Dispatch const & d) const82957   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82958   {
82959     d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
82960   }
82961 
82962 
82963   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles,Dispatch const & d) const82964   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82965   {
82966     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast<const VkRect2D *>( pDiscardRectangles ) );
82967   }
82968 
82969 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82970   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles,Dispatch const & d) const82971   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82972   {
82973     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size(), reinterpret_cast<const VkRect2D *>( discardRectangles.data() ) );
82974   }
82975 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82976 
82977 
82978   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const82979   VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82980   {
82981     d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
82982   }
82983 
82984 
82985   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,Dispatch const & d) const82986   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
82987   {
82988     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkRect2D *>( pExclusiveScissors ) );
82989   }
82990 
82991 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
82992   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors,Dispatch const & d) const82993   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
82994   {
82995     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size(), reinterpret_cast<const VkRect2D *>( exclusiveScissors.data() ) );
82996   }
82997 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
82998 
82999 
83000   template <typename Dispatch>
setFragmentShadingRateEnumNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const83001   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83002   {
83003     d.vkCmdSetFragmentShadingRateEnumNV( m_commandBuffer, static_cast<VkFragmentShadingRateNV>( shadingRate ), reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR*>( combinerOps ) );
83004   }
83005 
83006 
83007   template <typename Dispatch>
setFragmentShadingRateKHR(const VULKAN_HPP_NAMESPACE::Extent2D * pFragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const83008   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D* pFragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83009   {
83010     d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast<const VkExtent2D *>( pFragmentSize ), reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR*>( combinerOps ) );
83011   }
83012 
83013 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83014   template <typename Dispatch>
setFragmentShadingRateKHR(const Extent2D & fragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const83015   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83016   {
83017     d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast<const VkExtent2D *>( &fragmentSize ), reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) );
83018   }
83019 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83020 
83021 
83022   template <typename Dispatch>
setFrontFaceEXT(VULKAN_HPP_NAMESPACE::FrontFace frontFace,Dispatch const & d) const83023   VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83024   {
83025     d.vkCmdSetFrontFaceEXT( m_commandBuffer, static_cast<VkFrontFace>( frontFace ) );
83026   }
83027 
83028 
83029   template <typename Dispatch>
setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const83030   VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83031   {
83032     d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern );
83033   }
83034 
83035 
83036   template <typename Dispatch>
setLineWidth(float lineWidth,Dispatch const & d) const83037   VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83038   {
83039     d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
83040   }
83041 
83042 
83043   template <typename Dispatch>
setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const83044   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83045   {
83046     return static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( pMarkerInfo ) ) );
83047   }
83048 
83049 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83050   template <typename Dispatch>
setPerformanceMarkerINTEL(const PerformanceMarkerInfoINTEL & markerInfo,Dispatch const & d) const83051   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
83052   {
83053     Result result = static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) );
83054     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
83055   }
83056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83057 
83058 
83059   template <typename Dispatch>
setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo,Dispatch const & d) const83060   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83061   {
83062     return static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( pOverrideInfo ) ) );
83063   }
83064 
83065 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83066   template <typename Dispatch>
setPerformanceOverrideINTEL(const PerformanceOverrideInfoINTEL & overrideInfo,Dispatch const & d) const83067   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d ) const
83068   {
83069     Result result = static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) );
83070     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
83071   }
83072 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83073 
83074 
83075   template <typename Dispatch>
setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const83076   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83077   {
83078     return static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( pMarkerInfo ) ) );
83079   }
83080 
83081 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83082   template <typename Dispatch>
setPerformanceStreamMarkerINTEL(const PerformanceStreamMarkerInfoINTEL & markerInfo,Dispatch const & d) const83083   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
83084   {
83085     Result result = static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) );
83086     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
83087   }
83088 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83089 
83090 
83091   template <typename Dispatch>
setPrimitiveTopologyEXT(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,Dispatch const & d) const83092   VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83093   {
83094     d.vkCmdSetPrimitiveTopologyEXT( m_commandBuffer, static_cast<VkPrimitiveTopology>( primitiveTopology ) );
83095   }
83096 
83097 
83098   template <typename Dispatch>
setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo,Dispatch const & d) const83099   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83100   {
83101     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT *>( pSampleLocationsInfo ) );
83102   }
83103 
83104 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83105   template <typename Dispatch>
setSampleLocationsEXT(const SampleLocationsInfoEXT & sampleLocationsInfo,Dispatch const & d) const83106   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83107   {
83108     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT *>( &sampleLocationsInfo ) );
83109   }
83110 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83111 
83112 
83113   template <typename Dispatch>
setScissor(uint32_t firstScissor,uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const83114   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83115   {
83116     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
83117   }
83118 
83119 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83120   template <typename Dispatch>
setScissor(uint32_t firstScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const83121   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83122   {
83123     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
83124   }
83125 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83126 
83127 
83128   template <typename Dispatch>
setScissorWithCountEXT(uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const83129   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83130   {
83131     d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
83132   }
83133 
83134 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83135   template <typename Dispatch>
setScissorWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const83136   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83137   {
83138     d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
83139   }
83140 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83141 
83142 
83143   template <typename Dispatch>
setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t compareMask,Dispatch const & d) const83144   VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83145   {
83146     d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
83147   }
83148 
83149 
83150   template <typename Dispatch>
setStencilOpEXT(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,VULKAN_HPP_NAMESPACE::StencilOp failOp,VULKAN_HPP_NAMESPACE::StencilOp passOp,VULKAN_HPP_NAMESPACE::StencilOp depthFailOp,VULKAN_HPP_NAMESPACE::CompareOp compareOp,Dispatch const & d) const83151   VULKAN_HPP_INLINE void CommandBuffer::setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, VULKAN_HPP_NAMESPACE::StencilOp failOp, VULKAN_HPP_NAMESPACE::StencilOp passOp, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, VULKAN_HPP_NAMESPACE::CompareOp compareOp, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83152   {
83153     d.vkCmdSetStencilOpEXT( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), static_cast<VkStencilOp>( failOp ), static_cast<VkStencilOp>( passOp ), static_cast<VkStencilOp>( depthFailOp ), static_cast<VkCompareOp>( compareOp ) );
83154   }
83155 
83156 
83157   template <typename Dispatch>
setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t reference,Dispatch const & d) const83158   VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83159   {
83160     d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
83161   }
83162 
83163 
83164   template <typename Dispatch>
setStencilTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable,Dispatch const & d) const83165   VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83166   {
83167     d.vkCmdSetStencilTestEnableEXT( m_commandBuffer, static_cast<VkBool32>( stencilTestEnable ) );
83168   }
83169 
83170 
83171   template <typename Dispatch>
setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t writeMask,Dispatch const & d) const83172   VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83173   {
83174     d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
83175   }
83176 
83177 
83178   template <typename Dispatch>
setViewport(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const83179   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83180   {
83181     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
83182   }
83183 
83184 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83185   template <typename Dispatch>
setViewport(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const83186   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83187   {
83188     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
83189   }
83190 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83191 
83192 
83193   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes,Dispatch const & d) const83194   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83195   {
83196     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkShadingRatePaletteNV *>( pShadingRatePalettes ) );
83197   }
83198 
83199 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83200   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes,Dispatch const & d) const83201   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83202   {
83203     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size(), reinterpret_cast<const VkShadingRatePaletteNV *>( shadingRatePalettes.data() ) );
83204   }
83205 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83206 
83207 
83208   template <typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings,Dispatch const & d) const83209   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83210   {
83211     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewportWScalingNV *>( pViewportWScalings ) );
83212   }
83213 
83214 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83215   template <typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings,Dispatch const & d) const83216   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83217   {
83218     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size(), reinterpret_cast<const VkViewportWScalingNV *>( viewportWScalings.data() ) );
83219   }
83220 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83221 
83222 
83223   template <typename Dispatch>
setViewportWithCountEXT(uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const83224   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83225   {
83226     d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
83227   }
83228 
83229 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83230   template <typename Dispatch>
setViewportWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const83231   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83232   {
83233     d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
83234   }
83235 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83236 
83237 
83238 #ifdef VK_ENABLE_BETA_EXTENSIONS
83239   template <typename Dispatch>
traceRaysIndirectKHR(const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pRaygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pMissShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pHitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pCallableShaderBindingTable,VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const83240   VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83241   {
83242     d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast<const VkStridedBufferRegionKHR *>( pRaygenShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pMissShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pHitShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pCallableShaderBindingTable ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
83243   }
83244 
83245 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83246   template <typename Dispatch>
traceRaysIndirectKHR(const StridedBufferRegionKHR & raygenShaderBindingTable,const StridedBufferRegionKHR & missShaderBindingTable,const StridedBufferRegionKHR & hitShaderBindingTable,const StridedBufferRegionKHR & callableShaderBindingTable,VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const83247   VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const StridedBufferRegionKHR & raygenShaderBindingTable, const StridedBufferRegionKHR & missShaderBindingTable, const StridedBufferRegionKHR & hitShaderBindingTable, const StridedBufferRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83248   {
83249     d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast<const VkStridedBufferRegionKHR *>( &raygenShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &missShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &hitShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &callableShaderBindingTable ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
83250   }
83251 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83252 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83253 
83254 
83255 #ifdef VK_ENABLE_BETA_EXTENSIONS
83256   template <typename Dispatch>
traceRaysKHR(const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pRaygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pMissShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pHitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const83257   VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedBufferRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83258   {
83259     d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast<const VkStridedBufferRegionKHR *>( pRaygenShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pMissShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pHitShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( pCallableShaderBindingTable ), width, height, depth );
83260   }
83261 
83262 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83263   template <typename Dispatch>
traceRaysKHR(const StridedBufferRegionKHR & raygenShaderBindingTable,const StridedBufferRegionKHR & missShaderBindingTable,const StridedBufferRegionKHR & hitShaderBindingTable,const StridedBufferRegionKHR & callableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const83264   VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const StridedBufferRegionKHR & raygenShaderBindingTable, const StridedBufferRegionKHR & missShaderBindingTable, const StridedBufferRegionKHR & hitShaderBindingTable, const StridedBufferRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83265   {
83266     d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast<const VkStridedBufferRegionKHR *>( &raygenShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &missShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &hitShaderBindingTable ), reinterpret_cast<const VkStridedBufferRegionKHR *>( &callableShaderBindingTable ), width, height, depth );
83267   }
83268 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83269 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83270 
83271 
83272   template <typename Dispatch>
traceRaysNV(VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer,VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset,VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer,VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset,VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride,VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer,VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset,VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride,VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer,VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset,VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const83273   VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83274   {
83275     d.vkCmdTraceRaysNV( m_commandBuffer, static_cast<VkBuffer>( raygenShaderBindingTableBuffer ), static_cast<VkDeviceSize>( raygenShaderBindingOffset ), static_cast<VkBuffer>( missShaderBindingTableBuffer ), static_cast<VkDeviceSize>( missShaderBindingOffset ), static_cast<VkDeviceSize>( missShaderBindingStride ), static_cast<VkBuffer>( hitShaderBindingTableBuffer ), static_cast<VkDeviceSize>( hitShaderBindingOffset ), static_cast<VkDeviceSize>( hitShaderBindingStride ), static_cast<VkBuffer>( callableShaderBindingTableBuffer ), static_cast<VkDeviceSize>( callableShaderBindingOffset ), static_cast<VkDeviceSize>( callableShaderBindingStride ), width, height, depth );
83276   }
83277 
83278 
83279   template <typename Dispatch>
updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::DeviceSize dataSize,const void * pData,Dispatch const & d) const83280   VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize dataSize, const void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83281   {
83282     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( dataSize ), pData );
83283   }
83284 
83285 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83286   template <typename T, typename Dispatch>
updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,ArrayProxy<const T> const & data,Dispatch const & d) const83287   VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy<const T> const & data, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83288   {
83289     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), data.size() * sizeof( T ), reinterpret_cast<const void *>( data.data() ) );
83290   }
83291 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83292 
83293 
83294   template <typename Dispatch>
waitEvents(uint32_t eventCount,const VULKAN_HPP_NAMESPACE::Event * pEvents,VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VULKAN_HPP_NAMESPACE::MemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers,Dispatch const & d) const83295   VULKAN_HPP_INLINE void CommandBuffer::waitEvents( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83296   {
83297     d.vkCmdWaitEvents( m_commandBuffer, eventCount, reinterpret_cast<const VkEvent *>( pEvents ), static_cast<VkPipelineStageFlags>( srcStageMask ), static_cast<VkPipelineStageFlags>( dstStageMask ), memoryBarrierCount, reinterpret_cast<const VkMemoryBarrier *>( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast<const VkBufferMemoryBarrier *>( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast<const VkImageMemoryBarrier *>( pImageMemoryBarriers ) );
83298   }
83299 
83300 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83301   template <typename Dispatch>
waitEvents(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers,Dispatch const & d) const83302   VULKAN_HPP_INLINE void CommandBuffer::waitEvents( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83303   {
83304     d.vkCmdWaitEvents( m_commandBuffer, events.size(), reinterpret_cast<const VkEvent *>( events.data() ), static_cast<VkPipelineStageFlags>( srcStageMask ), static_cast<VkPipelineStageFlags>( dstStageMask ), memoryBarriers.size(), reinterpret_cast<const VkMemoryBarrier *>( memoryBarriers.data() ), bufferMemoryBarriers.size(), reinterpret_cast<const VkBufferMemoryBarrier *>( bufferMemoryBarriers.data() ), imageMemoryBarriers.size(), reinterpret_cast<const VkImageMemoryBarrier *>( imageMemoryBarriers.data() ) );
83305   }
83306 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83307 
83308 
83309 #ifdef VK_ENABLE_BETA_EXTENSIONS
83310   template <typename Dispatch>
writeAccelerationStructuresPropertiesKHR(uint32_t accelerationStructureCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const83311   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83312   {
83313     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
83314   }
83315 
83316 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83317   template <typename Dispatch>
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const83318   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83319   {
83320     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
83321   }
83322 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83323 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83324 
83325   template <typename Dispatch>
writeAccelerationStructuresPropertiesNV(uint32_t accelerationStructureCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const83326   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83327   {
83328     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
83329   }
83330 
83331 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83332   template <typename Dispatch>
writeAccelerationStructuresPropertiesNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const83333   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
83334   {
83335     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
83336   }
83337 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83338 
83339 
83340   template <typename Dispatch>
writeBufferMarkerAMD(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,uint32_t marker,Dispatch const & d) const83341   VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83342   {
83343     d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
83344   }
83345 
83346 
83347   template <typename Dispatch>
writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const83348   VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83349   {
83350     d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
83351   }
83352 
83353 
83354 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83355   template <typename Dispatch>
end(Dispatch const & d) const83356   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::end( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83357   {
83358     return static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
83359   }
83360 #else
83361   template <typename Dispatch>
end(Dispatch const & d) const83362   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::end( Dispatch const & d ) const
83363   {
83364     Result result = static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
83365     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
83366   }
83367 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83368 
83369 
83370 
83371 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83372   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const83373   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83374   {
83375     return static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
83376   }
83377 #else
83378   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const83379   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const
83380   {
83381     Result result = static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
83382     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
83383   }
83384 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83385 
83386 
83387 
83388 #ifdef VK_USE_PLATFORM_WIN32_KHR
83389 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83390   template <typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const83391   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83392   {
83393     return static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
83394   }
83395 #else
83396   template <typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const83397   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
83398   {
83399     Result result = static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
83400     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" );
83401   }
83402 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83403 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
83404 
83405 
83406 
83407   template <typename Dispatch>
acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex,Dispatch const & d) const83408   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83409   {
83410     return static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( pAcquireInfo ), pImageIndex ) );
83411   }
83412 
83413 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83414   template <typename Dispatch>
acquireNextImage2KHR(const AcquireNextImageInfoKHR & acquireInfo,Dispatch const & d) const83415   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d ) const
83416   {
83417     uint32_t imageIndex;
83418     Result result = static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex ) );
83419     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eNotReady, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
83420   }
83421 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83422 
83423 
83424   template <typename Dispatch>
acquireNextImageKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint64_t timeout,VULKAN_HPP_NAMESPACE::Semaphore semaphore,VULKAN_HPP_NAMESPACE::Fence fence,uint32_t * pImageIndex,Dispatch const & d) const83425   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, uint32_t* pImageIndex, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83426   {
83427     return static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), pImageIndex ) );
83428   }
83429 
83430 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83431   template <typename Dispatch>
acquireNextImageKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint64_t timeout,VULKAN_HPP_NAMESPACE::Semaphore semaphore,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const83432   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
83433   {
83434     uint32_t imageIndex;
83435     Result result = static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex ) );
83436     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImageKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eNotReady, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
83437   }
83438 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83439 
83440 
83441   template <typename Dispatch>
acquirePerformanceConfigurationINTEL(const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL * pConfiguration,Dispatch const & d) const83442   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83443   {
83444     return static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( pAcquireInfo ), reinterpret_cast< VkPerformanceConfigurationINTEL *>( pConfiguration ) ) );
83445   }
83446 
83447 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83448   template <typename Dispatch>
acquirePerformanceConfigurationINTEL(const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const83449   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>::type Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d ) const
83450   {
83451     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
83452     Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) );
83453     return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" );
83454   }
83455 
83456 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83457   template <typename Dispatch>
acquirePerformanceConfigurationINTELUnique(const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const83458   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>>::type Device::acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d ) const
83459   {
83460     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
83461     Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) );
83462     ObjectRelease<Device, Dispatch> deleter( *this, d );
83463     return createResultValue<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTELUnique", deleter );
83464   }
83465 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83466 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83467 
83468 
83469   template <typename Dispatch>
acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo,Dispatch const & d) const83470   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83471   {
83472     return static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( pInfo ) ) );
83473   }
83474 
83475 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83476   template <typename Dispatch>
acquireProfilingLockKHR(const AcquireProfilingLockInfoKHR & info,Dispatch const & d) const83477   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d ) const
83478   {
83479     Result result = static_cast<Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) );
83480     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
83481   }
83482 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83483 
83484 
83485   template <typename Dispatch>
allocateCommandBuffers(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const83486   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83487   {
83488     return static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( pAllocateInfo ), reinterpret_cast< VkCommandBuffer *>( pCommandBuffers ) ) );
83489   }
83490 
83491 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83492   template <typename CommandBufferAllocator, typename Dispatch>
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const83493   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer, CommandBufferAllocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const
83494   {
83495     std::vector<CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount );
83496     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
83497     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
83498   }
83499 
83500   template <typename CommandBufferAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CommandBuffer>::value, int>::type >
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,CommandBufferAllocator & commandBufferAllocator,Dispatch const & d) const83501   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer, CommandBufferAllocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d ) const
83502   {
83503     std::vector<CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount, commandBufferAllocator );
83504     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
83505     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
83506   }
83507 
83508 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83509   template <typename Dispatch, typename CommandBufferAllocator>
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const83510   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const
83511   {
83512     std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers;
83513     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
83514     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
83515     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83516     {
83517       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
83518       PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
83519       for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ )
83520       {
83521         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
83522       }
83523     }
83524     return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
83525   }
83526 
83527   template <typename Dispatch, typename CommandBufferAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<CommandBuffer, Dispatch>>::value, int>::type >
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,CommandBufferAllocator & commandBufferAllocator,Dispatch const & d) const83528   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d ) const
83529   {
83530     std::vector<UniqueHandle<CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers( commandBufferAllocator );
83531     std::vector<CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
83532     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
83533     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83534     {
83535       uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
83536       PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
83537       for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ )
83538       {
83539         uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffers[i], deleter ) );
83540       }
83541     }
83542     return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
83543   }
83544 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83545 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83546 
83547 
83548   template <typename Dispatch>
allocateDescriptorSets(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const83549   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83550   {
83551     return static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( pAllocateInfo ), reinterpret_cast< VkDescriptorSet *>( pDescriptorSets ) ) );
83552   }
83553 
83554 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83555   template <typename DescriptorSetAllocator, typename Dispatch>
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const83556   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet, DescriptorSetAllocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const
83557   {
83558     std::vector<DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount );
83559     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
83560     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
83561   }
83562 
83563   template <typename DescriptorSetAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DescriptorSet>::value, int>::type >
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,DescriptorSetAllocator & descriptorSetAllocator,Dispatch const & d) const83564   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet, DescriptorSetAllocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d ) const
83565   {
83566     std::vector<DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount, descriptorSetAllocator );
83567     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
83568     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
83569   }
83570 
83571 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83572   template <typename Dispatch, typename DescriptorSetAllocator>
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const83573   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const
83574   {
83575     std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets;
83576     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
83577     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
83578     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83579     {
83580       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
83581       PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
83582       for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ )
83583       {
83584         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
83585       }
83586     }
83587     return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
83588   }
83589 
83590   template <typename Dispatch, typename DescriptorSetAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<DescriptorSet, Dispatch>>::value, int>::type >
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,DescriptorSetAllocator & descriptorSetAllocator,Dispatch const & d) const83591   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d ) const
83592   {
83593     std::vector<UniqueHandle<DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets( descriptorSetAllocator );
83594     std::vector<DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
83595     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
83596     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
83597     {
83598       uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
83599       PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
83600       for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ )
83601       {
83602         uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSets[i], deleter ) );
83603       }
83604     }
83605     return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
83606   }
83607 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83608 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83609 
83610 
83611   template <typename Dispatch>
allocateMemory(const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo * pAllocateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeviceMemory * pMemory,Dispatch const & d) const83612   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo* pAllocateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeviceMemory* pMemory, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83613   {
83614     return static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo *>( pAllocateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDeviceMemory *>( pMemory ) ) );
83615   }
83616 
83617 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83618   template <typename Dispatch>
allocateMemory(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83619   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceMemory>::type Device::allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83620   {
83621     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
83622     Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory *>( &memory ) ) );
83623     return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemory" );
83624   }
83625 
83626 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83627   template <typename Dispatch>
allocateMemoryUnique(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83628   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83629   {
83630     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
83631     Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory *>( &memory ) ) );
83632     ObjectFree<Device, Dispatch> deleter( *this, allocator, d );
83633     return createResultValue<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemoryUnique", deleter );
83634   }
83635 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83637 
83638 
83639 #ifdef VK_ENABLE_BETA_EXTENSIONS
83640   template <typename Dispatch>
bindAccelerationStructureMemoryKHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR * pBindInfos,Dispatch const & d) const83641   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryKHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83642   {
83643     return static_cast<Result>( d.vkBindAccelerationStructureMemoryKHR( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( pBindInfos ) ) );
83644   }
83645 
83646 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83647   template <typename Dispatch>
bindAccelerationStructureMemoryKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos,Dispatch const & d) const83648   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindAccelerationStructureMemoryKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos, Dispatch const & d ) const
83649   {
83650     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryKHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( bindInfos.data() ) ) );
83651     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryKHR" );
83652   }
83653 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83654 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83655 
83656   template <typename Dispatch>
bindAccelerationStructureMemoryNV(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR * pBindInfos,Dispatch const & d) const83657   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR* pBindInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83658   {
83659     return static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( pBindInfos ) ) );
83660   }
83661 
83662 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83663   template <typename Dispatch>
bindAccelerationStructureMemoryNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos,Dispatch const & d) const83664   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindAccelerationStructureMemoryNV( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoKHR> const & bindInfos, Dispatch const & d ) const
83665   {
83666     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoKHR *>( bindInfos.data() ) ) );
83667     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" );
83668   }
83669 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83670 
83671 
83672 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83673   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const83674   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83675   {
83676     return static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
83677   }
83678 #else
83679   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const83680   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const
83681   {
83682     Result result = static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
83683     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" );
83684   }
83685 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83686 
83687 
83688 
83689   template <typename Dispatch>
bindBufferMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const83690   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83691   {
83692     return static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
83693   }
83694 
83695 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83696   template <typename Dispatch>
bindBufferMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const83697   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindBufferMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos, Dispatch const & d ) const
83698   {
83699     Result result = static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
83700     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
83701   }
83702 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83703 
83704   template <typename Dispatch>
bindBufferMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const83705   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83706   {
83707     return static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
83708   }
83709 
83710 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83711   template <typename Dispatch>
bindBufferMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const83712   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindBufferMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos, Dispatch const & d ) const
83713   {
83714     Result result = static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
83715     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
83716   }
83717 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83718 
83719 
83720 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83721   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const83722   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83723   {
83724     return static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
83725   }
83726 #else
83727   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const83728   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const
83729   {
83730     Result result = static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
83731     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" );
83732   }
83733 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83734 
83735 
83736 
83737   template <typename Dispatch>
bindImageMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const83738   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83739   {
83740     return static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
83741   }
83742 
83743 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83744   template <typename Dispatch>
bindImageMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const83745   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindImageMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos, Dispatch const & d ) const
83746   {
83747     Result result = static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
83748     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
83749   }
83750 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83751 
83752   template <typename Dispatch>
bindImageMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const83753   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83754   {
83755     return static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
83756   }
83757 
83758 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83759   template <typename Dispatch>
bindImageMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const83760   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindImageMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos, Dispatch const & d ) const
83761   {
83762     Result result = static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
83763     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
83764   }
83765 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83766 
83767 
83768 #ifdef VK_ENABLE_BETA_EXTENSIONS
83769   template <typename Dispatch>
buildAccelerationStructureKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const * ppOffsetInfos,Dispatch const & d) const83770   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::buildAccelerationStructureKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const * ppOffsetInfos, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83771   {
83772     return static_cast<Result>( d.vkBuildAccelerationStructureKHR( m_device, infoCount, reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( ppOffsetInfos ) ) );
83773   }
83774 
83775 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83776   template <typename Dispatch>
buildAccelerationStructureKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR * const> const & pOffsetInfos,Dispatch const & d) const83777   VULKAN_HPP_INLINE Result Device::buildAccelerationStructureKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildOffsetInfoKHR* const > const & pOffsetInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
83778   {
83779 #ifdef VULKAN_HPP_NO_EXCEPTIONS
83780     VULKAN_HPP_ASSERT( infos.size() == pOffsetInfos.size() );
83781 #else
83782     if ( infos.size() != pOffsetInfos.size() )
83783   {
83784     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructureKHR: infos.size() != pOffsetInfos.size()" );
83785   }
83786 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
83787 
83788     Result result = static_cast<Result>( d.vkBuildAccelerationStructureKHR( m_device, infos.size(), reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), reinterpret_cast<const VkAccelerationStructureBuildOffsetInfoKHR * const *>( pOffsetInfos.data() ) ) );
83789     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
83790   }
83791 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83792 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83793 
83794 
83795 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
83796   template <typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const83797   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83798   {
83799     return static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
83800   }
83801 #else
83802   template <typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const83803   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const
83804   {
83805     Result result = static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
83806     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" );
83807   }
83808 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83809 
83810 
83811 
83812 #ifdef VK_ENABLE_BETA_EXTENSIONS
83813   template <typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const83814   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83815   {
83816     return static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) ) );
83817   }
83818 
83819 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83820   template <typename Dispatch>
copyAccelerationStructureKHR(const CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const83821   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const
83822   {
83823     Result result = static_cast<Result>( d.vkCopyAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ) );
83824     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
83825   }
83826 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83827 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83828 
83829 
83830 #ifdef VK_ENABLE_BETA_EXTENSIONS
83831   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const83832   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83833   {
83834     return static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) ) );
83835   }
83836 
83837 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83838   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const83839   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const
83840   {
83841     Result result = static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( m_device, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ) );
83842     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
83843   }
83844 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83845 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83846 
83847 
83848 #ifdef VK_ENABLE_BETA_EXTENSIONS
83849   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const83850   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83851   {
83852     return static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) ) );
83853   }
83854 
83855 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83856   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const83857   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const
83858   {
83859     Result result = static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( m_device, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ) );
83860     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
83861   }
83862 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83863 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83864 
83865 
83866 #ifdef VK_ENABLE_BETA_EXTENSIONS
83867   template <typename Dispatch>
createAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructure,Dispatch const & d) const83868   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructure, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83869   {
83870     return static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkAccelerationStructureKHR *>( pAccelerationStructure ) ) );
83871   }
83872 
83873 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83874   template <typename Dispatch>
createAccelerationStructureKHR(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83875   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>::type Device::createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83876   {
83877     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
83878     Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) );
83879     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" );
83880   }
83881 
83882 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83883   template <typename Dispatch>
createAccelerationStructureKHRUnique(const AccelerationStructureCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83884   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>>::type Device::createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83885   {
83886     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
83887     Result result = static_cast<Result>( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) );
83888     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83889     return createResultValue<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHRUnique", deleter );
83890   }
83891 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83892 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83893 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
83894 
83895 
83896   template <typename Dispatch>
createAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructure,Dispatch const & d) const83897   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83898   {
83899     return static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkAccelerationStructureNV *>( pAccelerationStructure ) ) );
83900   }
83901 
83902 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83903   template <typename Dispatch>
createAccelerationStructureNV(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83904   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83905   {
83906     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
83907     Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) );
83908     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNV" );
83909   }
83910 
83911 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83912   template <typename Dispatch>
createAccelerationStructureNVUnique(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83913   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>>::type Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83914   {
83915     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
83916     Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) );
83917     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83918     return createResultValue<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNVUnique", deleter );
83919   }
83920 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83921 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83922 
83923 
83924   template <typename Dispatch>
createBuffer(const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Buffer * pBuffer,Dispatch const & d) const83925   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Buffer* pBuffer, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83926   {
83927     return static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkBuffer *>( pBuffer ) ) );
83928   }
83929 
83930 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83931   template <typename Dispatch>
createBuffer(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83932   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Buffer>::type Device::createBuffer( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83933   {
83934     VULKAN_HPP_NAMESPACE::Buffer buffer;
83935     Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer *>( &buffer ) ) );
83936     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBuffer" );
83937   }
83938 
83939 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83940   template <typename Dispatch>
createBufferUnique(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83941   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83942   {
83943     VULKAN_HPP_NAMESPACE::Buffer buffer;
83944     Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer *>( &buffer ) ) );
83945     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83946     return createResultValue<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferUnique", deleter );
83947   }
83948 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83949 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83950 
83951 
83952   template <typename Dispatch>
createBufferView(const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::BufferView * pView,Dispatch const & d) const83953   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::BufferView* pView, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83954   {
83955     return static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkBufferView *>( pView ) ) );
83956   }
83957 
83958 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83959   template <typename Dispatch>
createBufferView(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83960   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferView>::type Device::createBufferView( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83961   {
83962     VULKAN_HPP_NAMESPACE::BufferView view;
83963     Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView *>( &view ) ) );
83964     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferView" );
83965   }
83966 
83967 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83968   template <typename Dispatch>
createBufferViewUnique(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83969   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83970   {
83971     VULKAN_HPP_NAMESPACE::BufferView view;
83972     Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView *>( &view ) ) );
83973     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
83974     return createResultValue<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferViewUnique", deleter );
83975   }
83976 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
83977 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
83978 
83979 
83980   template <typename Dispatch>
createCommandPool(const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CommandPool * pCommandPool,Dispatch const & d) const83981   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::CommandPool* pCommandPool, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
83982   {
83983     return static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkCommandPool *>( pCommandPool ) ) );
83984   }
83985 
83986 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
83987   template <typename Dispatch>
createCommandPool(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83988   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::CommandPool>::type Device::createCommandPool( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83989   {
83990     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
83991     Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool *>( &commandPool ) ) );
83992     return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPool" );
83993   }
83994 
83995 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
83996   template <typename Dispatch>
createCommandPoolUnique(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const83997   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
83998   {
83999     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
84000     Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool *>( &commandPool ) ) );
84001     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84002     return createResultValue<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPoolUnique", deleter );
84003   }
84004 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84005 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84006 
84007 
84008   template <typename Dispatch>
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const84009   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84010   {
84011     return static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkComputePipelineCreateInfo *>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) );
84012   }
84013 
84014 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84015   template <typename PipelineAllocator, typename Dispatch>
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84016   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84017   {
84018     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
84019     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84020     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84021   }
84022 
84023   template <typename PipelineAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type >
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84024   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84025   {
84026     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
84027     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84028     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84029   }
84030 
84031   template <typename Dispatch>
createComputePipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84032   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84033   {
84034     Pipeline pipeline;
84035     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84036     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84037   }
84038 
84039 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84040   template <typename Dispatch, typename PipelineAllocator>
createComputePipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84041   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84042   {
84043     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
84044     std::vector<Pipeline> pipelines( createInfos.size() );
84045     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84046     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84047     {
84048       uniquePipelines.reserve( createInfos.size() );
84049       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84050       for ( size_t i=0; i < createInfos.size(); i++ )
84051       {
84052         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84053       }
84054     }
84055     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84056   }
84057 
84058   template <typename Dispatch, typename PipelineAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type >
createComputePipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84059   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84060   {
84061     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
84062     std::vector<Pipeline> pipelines( createInfos.size() );
84063     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84064     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84065     {
84066       uniquePipelines.reserve( createInfos.size() );
84067       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84068       for ( size_t i=0; i < createInfos.size(); i++ )
84069       {
84070         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84071       }
84072     }
84073     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84074   }
84075 
84076   template <typename Dispatch>
createComputePipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84077   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84078   {
84079     Pipeline pipeline;
84080     Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84081     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84082     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
84083   }
84084 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84085 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84086 
84087 
84088 #ifdef VK_ENABLE_BETA_EXTENSIONS
84089   template <typename Dispatch>
createDeferredOperationKHR(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeferredOperationKHR * pDeferredOperation,Dispatch const & d) const84090   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84091   {
84092     return static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDeferredOperationKHR *>( pDeferredOperation ) ) );
84093   }
84094 
84095 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84096   template <typename Dispatch>
createDeferredOperationKHR(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84097   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::type Device::createDeferredOperationKHR( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84098   {
84099     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
84100     Result result = static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) );
84101     return createResultValue( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHR" );
84102   }
84103 
84104 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84105   template <typename Dispatch>
createDeferredOperationKHRUnique(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84106   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>>::type Device::createDeferredOperationKHRUnique( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84107   {
84108     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
84109     Result result = static_cast<Result>( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) );
84110     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84111     return createResultValue<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHRUnique", deleter );
84112   }
84113 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84114 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84115 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84116 
84117 
84118   template <typename Dispatch>
createDescriptorPool(const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorPool * pDescriptorPool,Dispatch const & d) const84119   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorPool* pDescriptorPool, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84120   {
84121     return static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorPool *>( pDescriptorPool ) ) );
84122   }
84123 
84124 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84125   template <typename Dispatch>
createDescriptorPool(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84126   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorPool>::type Device::createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84127   {
84128     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
84129     Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) );
84130     return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPool" );
84131   }
84132 
84133 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84134   template <typename Dispatch>
createDescriptorPoolUnique(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84135   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84136   {
84137     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
84138     Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) );
84139     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84140     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPoolUnique", deleter );
84141   }
84142 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84143 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84144 
84145 
84146   template <typename Dispatch>
createDescriptorSetLayout(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayout,Dispatch const & d) const84147   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84148   {
84149     return static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorSetLayout *>( pSetLayout ) ) );
84150   }
84151 
84152 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84153   template <typename Dispatch>
createDescriptorSetLayout(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84154   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>::type Device::createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84155   {
84156     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
84157     Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) );
84158     return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayout" );
84159   }
84160 
84161 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84162   template <typename Dispatch>
createDescriptorSetLayoutUnique(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84163   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84164   {
84165     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
84166     Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) );
84167     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84168     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayoutUnique", deleter );
84169   }
84170 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84171 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84172 
84173 
84174   template <typename Dispatch>
createDescriptorUpdateTemplate(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const84175   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84176   {
84177     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) );
84178   }
84179 
84180 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84181   template <typename Dispatch>
createDescriptorUpdateTemplate(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84182   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84183   {
84184     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
84185     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
84186     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" );
84187   }
84188 
84189 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84190   template <typename Dispatch>
createDescriptorUpdateTemplateUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84191   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84192   {
84193     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
84194     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
84195     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84196     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateUnique", deleter );
84197   }
84198 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84199 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84200 
84201   template <typename Dispatch>
createDescriptorUpdateTemplateKHR(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const84202   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84203   {
84204     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) );
84205   }
84206 
84207 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84208   template <typename Dispatch>
createDescriptorUpdateTemplateKHR(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84209   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84210   {
84211     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
84212     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
84213     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" );
84214   }
84215 
84216 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84217   template <typename Dispatch>
createDescriptorUpdateTemplateKHRUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84218   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84219   {
84220     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
84221     Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
84222     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84223     return createResultValue<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHRUnique", deleter );
84224   }
84225 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84226 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84227 
84228 
84229   template <typename Dispatch>
createEvent(const VULKAN_HPP_NAMESPACE::EventCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Event * pEvent,Dispatch const & d) const84230   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Event* pEvent, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84231   {
84232     return static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkEvent *>( pEvent ) ) );
84233   }
84234 
84235 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84236   template <typename Dispatch>
createEvent(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84237   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Event>::type Device::createEvent( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84238   {
84239     VULKAN_HPP_NAMESPACE::Event event;
84240     Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent *>( &event ) ) );
84241     return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEvent" );
84242   }
84243 
84244 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84245   template <typename Dispatch>
createEventUnique(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84246   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Event, Dispatch>>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84247   {
84248     VULKAN_HPP_NAMESPACE::Event event;
84249     Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent *>( &event ) ) );
84250     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84251     return createResultValue<VULKAN_HPP_NAMESPACE::Event, Dispatch>( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEventUnique", deleter );
84252   }
84253 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84254 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84255 
84256 
84257   template <typename Dispatch>
createFence(const VULKAN_HPP_NAMESPACE::FenceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const84258   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84259   {
84260     return static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) );
84261   }
84262 
84263 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84264   template <typename Dispatch>
createFence(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84265   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type Device::createFence( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84266   {
84267     VULKAN_HPP_NAMESPACE::Fence fence;
84268     Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
84269     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFence" );
84270   }
84271 
84272 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84273   template <typename Dispatch>
createFenceUnique(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84274   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84275   {
84276     VULKAN_HPP_NAMESPACE::Fence fence;
84277     Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
84278     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84279     return createResultValue<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFenceUnique", deleter );
84280   }
84281 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84282 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84283 
84284 
84285   template <typename Dispatch>
createFramebuffer(const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Framebuffer * pFramebuffer,Dispatch const & d) const84286   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Framebuffer* pFramebuffer, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84287   {
84288     return static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFramebuffer *>( pFramebuffer ) ) );
84289   }
84290 
84291 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84292   template <typename Dispatch>
createFramebuffer(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84293   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Framebuffer>::type Device::createFramebuffer( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84294   {
84295     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
84296     Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) );
84297     return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebuffer" );
84298   }
84299 
84300 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84301   template <typename Dispatch>
createFramebufferUnique(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84302   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84303   {
84304     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
84305     Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) );
84306     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84307     return createResultValue<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebufferUnique", deleter );
84308   }
84309 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84310 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84311 
84312 
84313   template <typename Dispatch>
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const84314   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84315   {
84316     return static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) );
84317   }
84318 
84319 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84320   template <typename PipelineAllocator, typename Dispatch>
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84321   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84322   {
84323     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
84324     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84325     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84326   }
84327 
84328   template <typename PipelineAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type >
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84329   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84330   {
84331     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
84332     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84333     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84334   }
84335 
84336   template <typename Dispatch>
createGraphicsPipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84337   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84338   {
84339     Pipeline pipeline;
84340     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84341     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84342   }
84343 
84344 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84345   template <typename Dispatch, typename PipelineAllocator>
createGraphicsPipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84346   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84347   {
84348     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
84349     std::vector<Pipeline> pipelines( createInfos.size() );
84350     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84351     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84352     {
84353       uniquePipelines.reserve( createInfos.size() );
84354       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84355       for ( size_t i=0; i < createInfos.size(); i++ )
84356       {
84357         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84358       }
84359     }
84360     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84361   }
84362 
84363   template <typename Dispatch, typename PipelineAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type >
createGraphicsPipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84364   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84365   {
84366     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
84367     std::vector<Pipeline> pipelines( createInfos.size() );
84368     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84369     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84370     {
84371       uniquePipelines.reserve( createInfos.size() );
84372       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84373       for ( size_t i=0; i < createInfos.size(); i++ )
84374       {
84375         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84376       }
84377     }
84378     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84379   }
84380 
84381   template <typename Dispatch>
createGraphicsPipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84382   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84383   {
84384     Pipeline pipeline;
84385     Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84386     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84387     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
84388   }
84389 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84390 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84391 
84392 
84393   template <typename Dispatch>
createImage(const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Image * pImage,Dispatch const & d) const84394   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Image* pImage, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84395   {
84396     return static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkImage *>( pImage ) ) );
84397   }
84398 
84399 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84400   template <typename Dispatch>
createImage(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84401   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Image>::type Device::createImage( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84402   {
84403     VULKAN_HPP_NAMESPACE::Image image;
84404     Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage *>( &image ) ) );
84405     return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImage" );
84406   }
84407 
84408 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84409   template <typename Dispatch>
createImageUnique(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84410   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Image, Dispatch>>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84411   {
84412     VULKAN_HPP_NAMESPACE::Image image;
84413     Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage *>( &image ) ) );
84414     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84415     return createResultValue<VULKAN_HPP_NAMESPACE::Image, Dispatch>( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageUnique", deleter );
84416   }
84417 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84418 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84419 
84420 
84421   template <typename Dispatch>
createImageView(const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ImageView * pView,Dispatch const & d) const84422   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ImageView* pView, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84423   {
84424     return static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkImageView *>( pView ) ) );
84425   }
84426 
84427 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84428   template <typename Dispatch>
createImageView(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84429   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageView>::type Device::createImageView( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84430   {
84431     VULKAN_HPP_NAMESPACE::ImageView view;
84432     Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView *>( &view ) ) );
84433     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageView" );
84434   }
84435 
84436 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84437   template <typename Dispatch>
createImageViewUnique(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84438   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84439   {
84440     VULKAN_HPP_NAMESPACE::ImageView view;
84441     Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView *>( &view ) ) );
84442     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84443     return createResultValue<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageViewUnique", deleter );
84444   }
84445 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84446 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84447 
84448 
84449   template <typename Dispatch>
createIndirectCommandsLayoutNV(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV * pIndirectCommandsLayout,Dispatch const & d) const84450   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createIndirectCommandsLayoutNV( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV* pIndirectCommandsLayout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84451   {
84452     return static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkIndirectCommandsLayoutNV *>( pIndirectCommandsLayout ) ) );
84453   }
84454 
84455 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84456   template <typename Dispatch>
createIndirectCommandsLayoutNV(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84457   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>::type Device::createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84458   {
84459     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
84460     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) );
84461     return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" );
84462   }
84463 
84464 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84465   template <typename Dispatch>
createIndirectCommandsLayoutNVUnique(const IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84466   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>>::type Device::createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84467   {
84468     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
84469     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) );
84470     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84471     return createResultValue<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNVUnique", deleter );
84472   }
84473 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84474 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84475 
84476 
84477   template <typename Dispatch>
createPipelineCache(const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineCache * pPipelineCache,Dispatch const & d) const84478   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineCache* pPipelineCache, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84479   {
84480     return static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipelineCache *>( pPipelineCache ) ) );
84481   }
84482 
84483 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84484   template <typename Dispatch>
createPipelineCache(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84485   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineCache>::type Device::createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84486   {
84487     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
84488     Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) );
84489     return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCache" );
84490   }
84491 
84492 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84493   template <typename Dispatch>
createPipelineCacheUnique(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84494   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84495   {
84496     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
84497     Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) );
84498     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84499     return createResultValue<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCacheUnique", deleter );
84500   }
84501 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84502 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84503 
84504 
84505   template <typename Dispatch>
createPipelineLayout(const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineLayout * pPipelineLayout,Dispatch const & d) const84506   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineLayout* pPipelineLayout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84507   {
84508     return static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipelineLayout *>( pPipelineLayout ) ) );
84509   }
84510 
84511 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84512   template <typename Dispatch>
createPipelineLayout(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84513   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineLayout>::type Device::createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84514   {
84515     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
84516     Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) );
84517     return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayout" );
84518   }
84519 
84520 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84521   template <typename Dispatch>
createPipelineLayoutUnique(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84522   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84523   {
84524     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
84525     Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) );
84526     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84527     return createResultValue<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayoutUnique", deleter );
84528   }
84529 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84530 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84531 
84532 
84533   template <typename Dispatch>
createPrivateDataSlotEXT(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT * pPrivateDataSlot,Dispatch const & d) const84534   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT* pPrivateDataSlot, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84535   {
84536     return static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPrivateDataSlotEXT *>( pPrivateDataSlot ) ) );
84537   }
84538 
84539 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84540   template <typename Dispatch>
createPrivateDataSlotEXT(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84541   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>::type Device::createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84542   {
84543     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
84544     Result result = static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPrivateDataSlotEXT *>( &privateDataSlot ) ) );
84545     return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" );
84546   }
84547 
84548 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84549   template <typename Dispatch>
createPrivateDataSlotEXTUnique(const PrivateDataSlotCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84550   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT, Dispatch>>::type Device::createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84551   {
84552     VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot;
84553     Result result = static_cast<Result>( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPrivateDataSlotEXT *>( &privateDataSlot ) ) );
84554     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84555     return createResultValue<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT, Dispatch>( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXTUnique", deleter );
84556   }
84557 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84558 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84559 
84560 
84561   template <typename Dispatch>
createQueryPool(const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::QueryPool * pQueryPool,Dispatch const & d) const84562   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::QueryPool* pQueryPool, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84563   {
84564     return static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkQueryPool *>( pQueryPool ) ) );
84565   }
84566 
84567 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84568   template <typename Dispatch>
createQueryPool(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84569   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::QueryPool>::type Device::createQueryPool( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84570   {
84571     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
84572     Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool *>( &queryPool ) ) );
84573     return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPool" );
84574   }
84575 
84576 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84577   template <typename Dispatch>
createQueryPoolUnique(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84578   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84579   {
84580     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
84581     Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool *>( &queryPool ) ) );
84582     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84583     return createResultValue<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPoolUnique", deleter );
84584   }
84585 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84587 
84588 
84589 #ifdef VK_ENABLE_BETA_EXTENSIONS
84590   template <typename Dispatch>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const84591   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84592   {
84593     return static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) );
84594   }
84595 
84596 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84597   template <typename PipelineAllocator, typename Dispatch>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84598   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84599   {
84600     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
84601     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84602     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84603   }
84604 
84605   template <typename PipelineAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type >
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84606   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84607   {
84608     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
84609     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84610     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84611   }
84612 
84613   template <typename Dispatch>
createRayTracingPipelineKHR(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84614   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84615   {
84616     Pipeline pipeline;
84617     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84618     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84619   }
84620 
84621 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84622   template <typename Dispatch, typename PipelineAllocator>
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84623   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84624   {
84625     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
84626     std::vector<Pipeline> pipelines( createInfos.size() );
84627     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84628     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84629     {
84630       uniquePipelines.reserve( createInfos.size() );
84631       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84632       for ( size_t i=0; i < createInfos.size(); i++ )
84633       {
84634         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84635       }
84636     }
84637     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84638   }
84639 
84640   template <typename Dispatch, typename PipelineAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type >
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84641   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84642   {
84643     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
84644     std::vector<Pipeline> pipelines( createInfos.size() );
84645     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84646     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84647     {
84648       uniquePipelines.reserve( createInfos.size() );
84649       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84650       for ( size_t i=0; i < createInfos.size(); i++ )
84651       {
84652         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84653       }
84654     }
84655     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84656   }
84657 
84658   template <typename Dispatch>
createRayTracingPipelineKHRUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84659   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84660   {
84661     Pipeline pipeline;
84662     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84663     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84664     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
84665   }
84666 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84667 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84668 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
84669 
84670 
84671   template <typename Dispatch>
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const84672   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84673   {
84674     return static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) );
84675   }
84676 
84677 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84678   template <typename PipelineAllocator, typename Dispatch>
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84679   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84680   {
84681     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size() );
84682     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84683     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84684   }
84685 
84686   template <typename PipelineAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Pipeline>::value, int>::type >
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84687   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<Pipeline, PipelineAllocator>> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84688   {
84689     std::vector<Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
84690     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84691     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84692   }
84693 
84694   template <typename Dispatch>
createRayTracingPipelineNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84695   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<Pipeline> Device::createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84696   {
84697     Pipeline pipeline;
84698     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84699     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84700   }
84701 
84702 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84703   template <typename Dispatch, typename PipelineAllocator>
createRayTracingPipelinesNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84704   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84705   {
84706     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
84707     std::vector<Pipeline> pipelines( createInfos.size() );
84708     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84709     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84710     {
84711       uniquePipelines.reserve( createInfos.size() );
84712       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84713       for ( size_t i=0; i < createInfos.size(); i++ )
84714       {
84715         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84716       }
84717     }
84718     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84719   }
84720 
84721   template <typename Dispatch, typename PipelineAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<Pipeline, Dispatch>>::value, int>::type >
createRayTracingPipelinesNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const84722   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, Optional<const AllocationCallbacks> allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const
84723   {
84724     std::vector<UniqueHandle<Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
84725     std::vector<Pipeline> pipelines( createInfos.size() );
84726     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size(), reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
84727     if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) )
84728     {
84729       uniquePipelines.reserve( createInfos.size() );
84730       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84731       for ( size_t i=0; i < createInfos.size(); i++ )
84732       {
84733         uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipelines[i], deleter ) );
84734       }
84735     }
84736     return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
84737   }
84738 
84739   template <typename Dispatch>
createRayTracingPipelineNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84740   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<Pipeline, Dispatch>> Device::createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84741   {
84742     Pipeline pipeline;
84743     Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1, reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline *>( &pipeline ) ) );
84744     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84745     return createResultValue<Pipeline, Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter );
84746   }
84747 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84748 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84749 
84750 
84751   template <typename Dispatch>
createRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const84752   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84753   {
84754     return static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) );
84755   }
84756 
84757 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84758   template <typename Dispatch>
createRenderPass(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84759   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type Device::createRenderPass( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84760   {
84761     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84762     Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
84763     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass" );
84764   }
84765 
84766 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84767   template <typename Dispatch>
createRenderPassUnique(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84768   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84769   {
84770     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84771     Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
84772     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84773     return createResultValue<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPassUnique", deleter );
84774   }
84775 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84777 
84778 
84779   template <typename Dispatch>
createRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const84780   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84781   {
84782     return static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) );
84783   }
84784 
84785 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84786   template <typename Dispatch>
createRenderPass2(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84787   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type Device::createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84788   {
84789     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84790     Result result = static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
84791     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2" );
84792   }
84793 
84794 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84795   template <typename Dispatch>
createRenderPass2Unique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84796   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type Device::createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84797   {
84798     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84799     Result result = static_cast<Result>( d.vkCreateRenderPass2( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
84800     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84801     return createResultValue<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2Unique", deleter );
84802   }
84803 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84805 
84806   template <typename Dispatch>
createRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const84807   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84808   {
84809     return static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) );
84810   }
84811 
84812 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84813   template <typename Dispatch>
createRenderPass2KHR(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84814   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type Device::createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84815   {
84816     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84817     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
84818     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHR" );
84819   }
84820 
84821 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84822   template <typename Dispatch>
createRenderPass2KHRUnique(const RenderPassCreateInfo2 & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84823   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84824   {
84825     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
84826     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
84827     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84828     return createResultValue<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHRUnique", deleter );
84829   }
84830 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84831 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84832 
84833 
84834   template <typename Dispatch>
createSampler(const VULKAN_HPP_NAMESPACE::SamplerCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Sampler * pSampler,Dispatch const & d) const84835   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Sampler* pSampler, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84836   {
84837     return static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSampler *>( pSampler ) ) );
84838   }
84839 
84840 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84841   template <typename Dispatch>
createSampler(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84842   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Sampler>::type Device::createSampler( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84843   {
84844     VULKAN_HPP_NAMESPACE::Sampler sampler;
84845     Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler *>( &sampler ) ) );
84846     return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSampler" );
84847   }
84848 
84849 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84850   template <typename Dispatch>
createSamplerUnique(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84851   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84852   {
84853     VULKAN_HPP_NAMESPACE::Sampler sampler;
84854     Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler *>( &sampler ) ) );
84855     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84856     return createResultValue<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerUnique", deleter );
84857   }
84858 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84859 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84860 
84861 
84862   template <typename Dispatch>
createSamplerYcbcrConversion(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const84863   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84864   {
84865     return static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) );
84866   }
84867 
84868 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84869   template <typename Dispatch>
createSamplerYcbcrConversion(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84870   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type Device::createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84871   {
84872     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
84873     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
84874     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" );
84875   }
84876 
84877 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84878   template <typename Dispatch>
createSamplerYcbcrConversionUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84879   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84880   {
84881     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
84882     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
84883     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84884     return createResultValue<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionUnique", deleter );
84885   }
84886 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84887 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84888 
84889   template <typename Dispatch>
createSamplerYcbcrConversionKHR(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const84890   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84891   {
84892     return static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) );
84893   }
84894 
84895 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84896   template <typename Dispatch>
createSamplerYcbcrConversionKHR(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84897   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type Device::createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84898   {
84899     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
84900     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
84901     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" );
84902   }
84903 
84904 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84905   template <typename Dispatch>
createSamplerYcbcrConversionKHRUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84906   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84907   {
84908     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
84909     Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
84910     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84911     return createResultValue<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHRUnique", deleter );
84912   }
84913 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84914 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84915 
84916 
84917   template <typename Dispatch>
createSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Semaphore * pSemaphore,Dispatch const & d) const84918   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Semaphore* pSemaphore, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84919   {
84920     return static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSemaphore *>( pSemaphore ) ) );
84921   }
84922 
84923 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84924   template <typename Dispatch>
createSemaphore(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84925   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Semaphore>::type Device::createSemaphore( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84926   {
84927     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
84928     Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore *>( &semaphore ) ) );
84929     return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphore" );
84930   }
84931 
84932 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84933   template <typename Dispatch>
createSemaphoreUnique(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84934   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84935   {
84936     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
84937     Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore *>( &semaphore ) ) );
84938     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84939     return createResultValue<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphoreUnique", deleter );
84940   }
84941 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84942 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84943 
84944 
84945   template <typename Dispatch>
createShaderModule(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ShaderModule * pShaderModule,Dispatch const & d) const84946   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ShaderModule* pShaderModule, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84947   {
84948     return static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkShaderModule *>( pShaderModule ) ) );
84949   }
84950 
84951 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84952   template <typename Dispatch>
createShaderModule(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84953   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ShaderModule>::type Device::createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84954   {
84955     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
84956     Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule *>( &shaderModule ) ) );
84957     return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModule" );
84958   }
84959 
84960 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
84961   template <typename Dispatch>
createShaderModuleUnique(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84962   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84963   {
84964     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
84965     Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule *>( &shaderModule ) ) );
84966     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
84967     return createResultValue<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModuleUnique", deleter );
84968   }
84969 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
84970 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
84971 
84972 
84973   template <typename Dispatch>
createSharedSwapchainsKHR(uint32_t swapchainCount,const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains,Dispatch const & d) const84974   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSharedSwapchainsKHR( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
84975   {
84976     return static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchains ) ) );
84977   }
84978 
84979 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
84980   template <typename SwapchainKHRAllocator, typename Dispatch>
createSharedSwapchainsKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84981   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84982   {
84983     std::vector<SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size() );
84984     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
84985     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
84986   }
84987 
84988   template <typename SwapchainKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SwapchainKHR>::value, int>::type >
createSharedSwapchainsKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,SwapchainKHRAllocator & swapchainKHRAllocator,Dispatch const & d) const84989   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d ) const
84990   {
84991     std::vector<SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size(), swapchainKHRAllocator );
84992     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
84993     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
84994   }
84995 
84996   template <typename Dispatch>
createSharedSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const84997   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<SwapchainKHR>::type Device::createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
84998   {
84999     SwapchainKHR swapchain;
85000     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
85001     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" );
85002   }
85003 
85004 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85005   template <typename Dispatch, typename SwapchainKHRAllocator>
createSharedSwapchainsKHRUnique(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85006   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85007   {
85008     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains;
85009     std::vector<SwapchainKHR> swapchains( createInfos.size() );
85010     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
85011     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
85012     {
85013       uniqueSwapchains.reserve( createInfos.size() );
85014       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85015       for ( size_t i=0; i < createInfos.size(); i++ )
85016       {
85017         uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchains[i], deleter ) );
85018       }
85019     }
85020     return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
85021   }
85022 
85023   template <typename Dispatch, typename SwapchainKHRAllocator, typename B, typename std::enable_if<std::is_same<typename B::value_type, UniqueHandle<SwapchainKHR, Dispatch>>::value, int>::type >
createSharedSwapchainsKHRUnique(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const AllocationCallbacks> allocator,SwapchainKHRAllocator & swapchainKHRAllocator,Dispatch const & d) const85024   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, Optional<const AllocationCallbacks> allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d ) const
85025   {
85026     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains( swapchainKHRAllocator );
85027     std::vector<SwapchainKHR> swapchains( createInfos.size() );
85028     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
85029     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
85030     {
85031       uniqueSwapchains.reserve( createInfos.size() );
85032       ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85033       for ( size_t i=0; i < createInfos.size(); i++ )
85034       {
85035         uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchains[i], deleter ) );
85036       }
85037     }
85038     return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
85039   }
85040 
85041   template <typename Dispatch>
createSharedSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85042   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR, Dispatch>>::type Device::createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85043   {
85044     SwapchainKHR swapchain;
85045     Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
85046     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85047     return createResultValue<SwapchainKHR, Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHRUnique", deleter );
85048   }
85049 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85050 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85051 
85052 
85053   template <typename Dispatch>
createSwapchainKHR(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchain,Dispatch const & d) const85054   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85055   {
85056     return static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchain ) ) );
85057   }
85058 
85059 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85060   template <typename Dispatch>
createSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85061   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SwapchainKHR>::type Device::createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85062   {
85063     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
85064     Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
85065     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHR" );
85066   }
85067 
85068 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85069   template <typename Dispatch>
createSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85070   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85071   {
85072     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
85073     Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
85074     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85075     return createResultValue<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHRUnique", deleter );
85076   }
85077 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85078 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85079 
85080 
85081   template <typename Dispatch>
createValidationCacheEXT(const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pValidationCache,Dispatch const & d) const85082   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85083   {
85084     return static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkValidationCacheEXT *>( pValidationCache ) ) );
85085   }
85086 
85087 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85088   template <typename Dispatch>
createValidationCacheEXT(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85089   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85090   {
85091     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
85092     Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) );
85093     return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXT" );
85094   }
85095 
85096 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
85097   template <typename Dispatch>
createValidationCacheEXTUnique(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85098   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
85099   {
85100     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
85101     Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) );
85102     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
85103     return createResultValue<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXTUnique", deleter );
85104   }
85105 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
85106 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85107 
85108 
85109   template <typename Dispatch>
debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo,Dispatch const & d) const85110   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85111   {
85112     return static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( pNameInfo ) ) );
85113   }
85114 
85115 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85116   template <typename Dispatch>
debugMarkerSetObjectNameEXT(const DebugMarkerObjectNameInfoEXT & nameInfo,Dispatch const & d) const85117   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
85118   {
85119     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) );
85120     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
85121   }
85122 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85123 
85124 
85125   template <typename Dispatch>
debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo,Dispatch const & d) const85126   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85127   {
85128     return static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( pTagInfo ) ) );
85129   }
85130 
85131 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85132   template <typename Dispatch>
debugMarkerSetObjectTagEXT(const DebugMarkerObjectTagInfoEXT & tagInfo,Dispatch const & d) const85133   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
85134   {
85135     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) );
85136     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
85137   }
85138 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85139 
85140 
85141 #ifdef VK_ENABLE_BETA_EXTENSIONS
85142 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
85143   template <typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const85144   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85145   {
85146     return static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
85147   }
85148 #else
85149   template <typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const85150   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const
85151   {
85152     Result result = static_cast<Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
85153     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::deferredOperationJoinKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } );
85154   }
85155 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85156 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85157 
85158 
85159 
85160 #ifdef VK_ENABLE_BETA_EXTENSIONS
85161   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85162   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85163   {
85164     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85165   }
85166 
85167 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85168   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85169   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85170   {
85171     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85172   }
85173 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85174 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85175 
85176   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85177   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85178   {
85179     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85180   }
85181 
85182 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85183   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85184   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85185   {
85186     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85187   }
85188 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85189 
85190 
85191   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85192   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85193   {
85194 #ifdef VK_ENABLE_BETA_EXTENSIONS
85195     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85196 #else
85197     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85198 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85199 
85200   }
85201 
85202 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85203   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85204   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85205   {
85206 #ifdef VK_ENABLE_BETA_EXTENSIONS
85207     d.vkDestroyAccelerationStructureKHR( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85208 #else
85209     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85210 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85211 
85212   }
85213 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85214 
85215 
85216   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85217   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85218   {
85219     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85220   }
85221 
85222 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85223   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85224   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85225   {
85226     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85227   }
85228 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85229 
85230 
85231   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85232   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85233   {
85234     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85235   }
85236 
85237 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85238   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85239   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85240   {
85241     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85242   }
85243 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85244 
85245 
85246   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85247   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85248   {
85249     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85250   }
85251 
85252 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85253   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85254   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85255   {
85256     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85257   }
85258 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85259 
85260 
85261   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85262   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85263   {
85264     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85265   }
85266 
85267 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85268   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85269   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85270   {
85271     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85272   }
85273 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85274 
85275 
85276   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85277   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85278   {
85279     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85280   }
85281 
85282 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85283   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85284   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85285   {
85286     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85287   }
85288 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85289 
85290 
85291   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85292   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85293   {
85294     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85295   }
85296 
85297 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85298   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85299   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85300   {
85301     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85302   }
85303 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85304 
85305 
85306 #ifdef VK_ENABLE_BETA_EXTENSIONS
85307   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85308   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85309   {
85310     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85311   }
85312 
85313 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85314   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85315   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85316   {
85317     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85318   }
85319 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85320 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85321 
85322 
85323 #ifdef VK_ENABLE_BETA_EXTENSIONS
85324   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85325   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85326   {
85327     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85328   }
85329 
85330 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85331   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85332   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85333   {
85334     d.vkDestroyDeferredOperationKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85335   }
85336 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85337 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
85338 
85339 
85340   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85341   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85342   {
85343     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85344   }
85345 
85346 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85347   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85348   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85349   {
85350     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85351   }
85352 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85353 
85354 
85355   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85356   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85357   {
85358     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85359   }
85360 
85361 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85362   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85363   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85364   {
85365     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85366   }
85367 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85368 
85369 
85370   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85371   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85372   {
85373     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85374   }
85375 
85376 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85377   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85378   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85379   {
85380     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85381   }
85382 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85383 
85384 
85385   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85386   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85387   {
85388     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85389   }
85390 
85391 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85392   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85393   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85394   {
85395     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85396   }
85397 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85398 
85399 
85400   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85401   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85402   {
85403     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85404   }
85405 
85406 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85407   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85408   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85409   {
85410     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85411   }
85412 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85413 
85414   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85415   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85416   {
85417     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85418   }
85419 
85420 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85421   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85422   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85423   {
85424     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85425   }
85426 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85427 
85428 
85429   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85430   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85431   {
85432     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85433   }
85434 
85435 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85436   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85437   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85438   {
85439     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85440   }
85441 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85442 
85443 
85444   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85445   VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85446   {
85447     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85448   }
85449 
85450 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85451   template <typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85452   VULKAN_HPP_INLINE void Device::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85453   {
85454     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85455   }
85456 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85457 
85458 
85459   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85460   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85461   {
85462     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85463   }
85464 
85465 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85466   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85467   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85468   {
85469     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85470   }
85471 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85472 
85473 
85474   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85475   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85476   {
85477     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85478   }
85479 
85480 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85481   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85482   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85483   {
85484     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85485   }
85486 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85487 
85488 
85489   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85490   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85491   {
85492     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85493   }
85494 
85495 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85496   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85497   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85498   {
85499     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85500   }
85501 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85502 
85503 
85504   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85505   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85506   {
85507     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85508   }
85509 
85510 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85511   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85512   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85513   {
85514     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85515   }
85516 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85517 
85518 
85519   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85520   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85521   {
85522     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85523   }
85524 
85525 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85526   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85527   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85528   {
85529     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85530   }
85531 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85532 
85533 
85534   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85535   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85536   {
85537     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85538   }
85539 
85540 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85541   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85542   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85543   {
85544     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85545   }
85546 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85547 
85548 
85549   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85550   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85551   {
85552     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85553   }
85554 
85555 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85556   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85557   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85558   {
85559     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85560   }
85561 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85562 
85563 
85564   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85565   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85566   {
85567     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85568   }
85569 
85570 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85571   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85572   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85573   {
85574     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85575   }
85576 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85577 
85578 
85579   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85580   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85581   {
85582     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85583   }
85584 
85585 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85586   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85587   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85588   {
85589     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85590   }
85591 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85592 
85593 
85594   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85595   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85596   {
85597     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85598   }
85599 
85600 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85601   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85602   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85603   {
85604     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85605   }
85606 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85607 
85608 
85609   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85610   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85611   {
85612     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85613   }
85614 
85615 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85616   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85617   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85618   {
85619     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85620   }
85621 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85622 
85623 
85624   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85625   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85626   {
85627     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85628   }
85629 
85630 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85631   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85632   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85633   {
85634     d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85635   }
85636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85637 
85638 
85639   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85640   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85641   {
85642     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85643   }
85644 
85645 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85646   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85647   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85648   {
85649     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85650   }
85651 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85652 
85653 
85654   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85655   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85656   {
85657     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85658   }
85659 
85660 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85661   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85662   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85663   {
85664     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85665   }
85666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85667 
85668 
85669   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85670   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85671   {
85672     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85673   }
85674 
85675 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85676   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85677   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85678   {
85679     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85680   }
85681 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85682 
85683 
85684   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85685   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85686   {
85687     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85688   }
85689 
85690 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85691   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85692   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85693   {
85694     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85695   }
85696 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85697 
85698 
85699   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85700   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85701   {
85702     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85703   }
85704 
85705 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85706   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85707   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85708   {
85709     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85710   }
85711 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85712 
85713 
85714   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85715   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85716   {
85717     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85718   }
85719 
85720 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85721   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85722   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85723   {
85724     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85725   }
85726 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85727 
85728 
85729   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85730   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85731   {
85732     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85733   }
85734 
85735 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85736   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85737   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85738   {
85739     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85740   }
85741 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85742 
85743 
85744   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85745   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85746   {
85747     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85748   }
85749 
85750 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85751   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85752   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85753   {
85754     d.vkDestroyPrivateDataSlotEXT( m_device, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85755   }
85756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85757 
85758 
85759   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85760   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85761   {
85762     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85763   }
85764 
85765 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85766   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85767   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85768   {
85769     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85770   }
85771 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85772 
85773 
85774   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85775   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85776   {
85777     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85778   }
85779 
85780 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85781   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85782   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85783   {
85784     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85785   }
85786 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85787 
85788 
85789   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85790   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85791   {
85792     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85793   }
85794 
85795 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85796   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85797   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85798   {
85799     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85800   }
85801 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85802 
85803 
85804   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85805   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85806   {
85807     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85808   }
85809 
85810 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85811   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85812   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85813   {
85814     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85815   }
85816 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85817 
85818 
85819   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85820   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85821   {
85822     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85823   }
85824 
85825 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85826   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85827   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85828   {
85829     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85830   }
85831 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85832 
85833 
85834   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85835   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85836   {
85837     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85838   }
85839 
85840 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85841   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85842   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85843   {
85844     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85845   }
85846 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85847 
85848 
85849   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85850   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85851   {
85852     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85853   }
85854 
85855 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85856   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85857   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85858   {
85859     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85860   }
85861 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85862 
85863   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85864   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85865   {
85866     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85867   }
85868 
85869 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85870   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85871   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85872   {
85873     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85874   }
85875 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85876 
85877 
85878   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85879   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85880   {
85881     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85882   }
85883 
85884 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85885   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85886   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85887   {
85888     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85889   }
85890 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85891 
85892 
85893   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85894   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85895   {
85896     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85897   }
85898 
85899 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85900   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85901   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85902   {
85903     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85904   }
85905 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85906 
85907 
85908   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85909   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85910   {
85911     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85912   }
85913 
85914 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85915   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85916   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85917   {
85918     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85919   }
85920 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85921 
85922 
85923   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85924   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85925   {
85926     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85927   }
85928 
85929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85930   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85931   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85932   {
85933     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85934   }
85935 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85936 
85937 
85938   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85939   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85940   {
85941     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85942   }
85943 
85944 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85945   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85946   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85947   {
85948     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85949   }
85950 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85951 
85952 
85953   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85954   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85955   {
85956     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85957   }
85958 
85959 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85960   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85961   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85962   {
85963     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85964   }
85965 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85966 
85967 
85968   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85969   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85970   {
85971     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85972   }
85973 
85974 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85975   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85976   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85977   {
85978     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85979   }
85980 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85981 
85982 
85983   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85984   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
85985   {
85986     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
85987   }
85988 
85989 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
85990   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const85991   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
85992   {
85993     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
85994   }
85995 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
85996 
85997 
85998   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const85999   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86000   {
86001     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86002   }
86003 
86004 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86005   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86006   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86007   {
86008     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86009   }
86010 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86011 
86012 
86013 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86014   template <typename Dispatch>
waitIdle(Dispatch const & d) const86015   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitIdle( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86016   {
86017     return static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
86018   }
86019 #else
86020   template <typename Dispatch>
waitIdle(Dispatch const & d) const86021   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::waitIdle( Dispatch const & d ) const
86022   {
86023     Result result = static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
86024     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
86025   }
86026 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86027 
86028 
86029 
86030   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo,Dispatch const & d) const86031   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86032   {
86033     return static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( pDisplayPowerInfo ) ) );
86034   }
86035 
86036 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86037   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayPowerInfoEXT & displayPowerInfo,Dispatch const & d) const86038   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d ) const
86039   {
86040     Result result = static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) ) );
86041     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" );
86042   }
86043 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86044 
86045 
86046   template <typename Dispatch>
flushMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const86047   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86048   {
86049     return static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
86050   }
86051 
86052 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86053   template <typename Dispatch>
flushMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const86054   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::flushMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges, Dispatch const & d ) const
86055   {
86056     Result result = static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
86057     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
86058   }
86059 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86060 
86061 
86062   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const86063   VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86064   {
86065     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
86066   }
86067 
86068 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86069   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const86070   VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86071   {
86072     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
86073   }
86074 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86075 
86076 
86077   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const86078   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86079   {
86080     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
86081   }
86082 
86083 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86084   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::CommandPool commandPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const86085   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86086   {
86087     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
86088   }
86089 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86090 
86091 
86092   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const86093   VULKAN_HPP_INLINE Result Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86094   {
86095     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
86096   }
86097 
86098 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86099   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,Dispatch const & d) const86100   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, Dispatch const & d ) const
86101   {
86102     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) ) );
86103     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::freeDescriptorSets" );
86104   }
86105 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86106 
86107 
86108   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const86109   VULKAN_HPP_INLINE Result Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86110   {
86111     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
86112   }
86113 
86114 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86115   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,Dispatch const & d) const86116   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, Dispatch const & d ) const
86117   {
86118     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) ) );
86119     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::free" );
86120   }
86121 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86122 
86123 
86124   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86125   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86126   {
86127     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86128   }
86129 
86130 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86131   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86132   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86133   {
86134     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86135   }
86136 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86137 
86138 
86139   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const86140   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86141   {
86142     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
86143   }
86144 
86145 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86146   template <typename Dispatch>
free(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const86147   VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86148   {
86149     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
86150   }
86151 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86152 
86153 
86154 #ifdef VK_ENABLE_BETA_EXTENSIONS
86155   template <typename Dispatch>
getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo,Dispatch const & d) const86156   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86157   {
86158     return static_cast<DeviceAddress>( d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( pInfo ) ) );
86159   }
86160 
86161 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86162   template <typename Dispatch>
getAccelerationStructureAddressKHR(const AccelerationStructureDeviceAddressInfoKHR & info,Dispatch const & d) const86163   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86164   {
86165     return d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( &info ) );
86166   }
86167 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86168 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86169 
86170 
86171   template <typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,size_t dataSize,void * pData,Dispatch const & d) const86172   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86173   {
86174     return static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), dataSize, pData ) );
86175   }
86176 
86177 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86178   template <typename T, typename Dispatch>
86179   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,ArrayProxy<T> const & data,Dispatch const & d) const86180   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getAccelerationStructureHandleNV(  VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, ArrayProxy<T> const &data, Dispatch const &d  ) const
86181   {
86182         Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
86183     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" );
86184 
86185   }
86186 
86187   template <typename T, typename Allocator, typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,size_t dataSize,Dispatch const & d) const86188   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<T,Allocator>>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, size_t dataSize, Dispatch const & d ) const
86189   {
86190     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
86191     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
86192     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ) ) );
86193     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
86194   }
86195 
86196   template <typename T, typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Dispatch const & d) const86197   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<T>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Dispatch const & d ) const
86198   {
86199     T data;
86200     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureKHR>( accelerationStructure ), sizeof( T ), reinterpret_cast<void *>( &data ) ) );
86201     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
86202   }
86203 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86204 
86205 
86206 #ifdef VK_ENABLE_BETA_EXTENSIONS
86207   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86208   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoKHR* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86209   {
86210     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86211   }
86212 
86213 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86214   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const AccelerationStructureMemoryRequirementsInfoKHR & info,Dispatch const & d) const86215   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86216   {
86217     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86218     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86219     return memoryRequirements;
86220   }
86221 
86222   template <typename X, typename Y, typename... Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsKHR(const AccelerationStructureMemoryRequirementsInfoKHR & info,Dispatch const & d) const86223   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsKHR( const AccelerationStructureMemoryRequirementsInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86224   {
86225     StructureChain<X, Y, Z...> structureChain;
86226     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86227     d.vkGetAccelerationStructureMemoryRequirementsKHR( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoKHR *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86228     return structureChain;
86229   }
86230 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86231 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86232 
86233 
86234   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR * pMemoryRequirements,Dispatch const & d) const86235   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86236   {
86237     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( pInfo ), reinterpret_cast< VkMemoryRequirements2KHR *>( pMemoryRequirements ) );
86238   }
86239 
86240 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86241   template <typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const86242   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86243   {
86244     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements;
86245     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) );
86246     return memoryRequirements;
86247   }
86248 
86249   template <typename X, typename Y, typename... Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const86250   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86251   {
86252     StructureChain<X, Y, Z...> structureChain;
86253     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
86254     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) );
86255     return structureChain;
86256   }
86257 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86258 
86259 
86260 #ifdef VK_USE_PLATFORM_ANDROID_KHR
86261   template <typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer * buffer,VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties,Dispatch const & d) const86262   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86263   {
86264     return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast< VkAndroidHardwareBufferPropertiesANDROID *>( pProperties ) ) );
86265   }
86266 
86267 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86268   template <typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const86269   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const
86270   {
86271     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
86272     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
86273     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
86274   }
86275 
86276   template <typename X, typename Y, typename... Z, typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const86277   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const
86278   {
86279     StructureChain<X, Y, Z...> structureChain;
86280     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
86281     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
86282     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
86283   }
86284 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86285 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
86286 
86287 
86288   template <typename Dispatch>
getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86289   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86290   {
86291     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
86292   }
86293 
86294 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86295   template <typename Dispatch>
getBufferAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const86296   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86297   {
86298     return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86299   }
86300 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86301 
86302   template <typename Dispatch>
getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86303   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86304   {
86305     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
86306   }
86307 
86308 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86309   template <typename Dispatch>
getBufferAddressEXT(const BufferDeviceAddressInfo & info,Dispatch const & d) const86310   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86311   {
86312     return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86313   }
86314 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86315 
86316   template <typename Dispatch>
getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86317   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86318   {
86319     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
86320   }
86321 
86322 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86323   template <typename Dispatch>
getBufferAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const86324   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86325   {
86326     return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86327   }
86328 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86329 
86330 
86331   template <typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const86332   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86333   {
86334     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) );
86335   }
86336 
86337 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86338   template <typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,Dispatch const & d) const86339   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86340   {
86341     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
86342     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
86343     return memoryRequirements;
86344   }
86345 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86346 
86347 
86348   template <typename Dispatch>
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86349   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86350   {
86351     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86352   }
86353 
86354 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86355   template <typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const86356   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86357   {
86358     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86359     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86360     return memoryRequirements;
86361   }
86362 
86363   template <typename X, typename Y, typename... Z, typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const86364   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86365   {
86366     StructureChain<X, Y, Z...> structureChain;
86367     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86368     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86369     return structureChain;
86370   }
86371 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86372 
86373   template <typename Dispatch>
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86374   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86375   {
86376     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86377   }
86378 
86379 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86380   template <typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const86381   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86382   {
86383     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86384     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86385     return memoryRequirements;
86386   }
86387 
86388   template <typename X, typename Y, typename... Z, typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const86389   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86390   {
86391     StructureChain<X, Y, Z...> structureChain;
86392     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86393     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86394     return structureChain;
86395   }
86396 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86397 
86398 
86399   template <typename Dispatch>
getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86400   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86401   {
86402     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
86403   }
86404 
86405 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86406   template <typename Dispatch>
getBufferOpaqueCaptureAddress(const BufferDeviceAddressInfo & info,Dispatch const & d) const86407   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86408   {
86409     return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86410   }
86411 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86412 
86413   template <typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const86414   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86415   {
86416     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
86417   }
86418 
86419 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86420   template <typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const BufferDeviceAddressInfo & info,Dispatch const & d) const86421   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86422   {
86423     return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
86424   }
86425 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86426 
86427 
86428   template <typename Dispatch>
getCalibratedTimestampsEXT(uint32_t timestampCount,const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation,Dispatch const & d) const86429   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsEXT( uint32_t timestampCount, const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86430   {
86431     return static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
86432   }
86433 
86434 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86435   template <typename Dispatch>
86436   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,ArrayProxy<uint64_t> const & timestamps,Dispatch const & d) const86437   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getCalibratedTimestampsEXT(  ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const &timestampInfos, ArrayProxy<uint64_t> const &timestamps, Dispatch const &d  ) const
86438   {
86439     #ifdef VULKAN_HPP_NO_EXCEPTIONS
86440     VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() );
86441 #else
86442     if ( timestampInfos.size() != timestamps.size() )
86443     {
86444       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" );
86445     }
86446 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
86447     uint64_t maxDeviation;
86448     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
86449     return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" );
86450 
86451   }
86452 
86453   template <typename Uint64_tAllocator, typename Dispatch>
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,Dispatch const & d) const86454   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type Device::getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos, Dispatch const & d ) const
86455   {
86456     std::pair<std::vector<uint64_t, Uint64_tAllocator>,uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
86457     std::vector<uint64_t, Uint64_tAllocator> & timestamps = data.first;
86458     uint64_t & maxDeviation = data.second;
86459     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
86460     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
86461   }
86462 
86463   template <typename Uint64_tAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint64_t>::value, int>::type >
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos,Uint64_tAllocator & uint64_tAllocator,Dispatch const & d) const86464   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type Device::getCalibratedTimestampsEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos, Uint64_tAllocator & uint64_tAllocator, Dispatch const & d ) const
86465   {
86466     std::pair<std::vector<uint64_t, Uint64_tAllocator>,uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ), std::forward_as_tuple( 0 ) );
86467     std::vector<uint64_t, Uint64_tAllocator> & timestamps = data.first;
86468     uint64_t & maxDeviation = data.second;
86469     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
86470     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
86471   }
86472 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86473 
86474 
86475 #ifdef VK_ENABLE_BETA_EXTENSIONS
86476   template <typename Dispatch>
getDeferredOperationMaxConcurrencyKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const86477   VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86478   {
86479     return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) );
86480   }
86481 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86482 
86483 
86484 #ifdef VK_ENABLE_BETA_EXTENSIONS
86485 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86486   template <typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const86487   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86488   {
86489     return static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
86490   }
86491 #else
86492   template <typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const86493   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const
86494   {
86495     Result result = static_cast<Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
86496     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getDeferredOperationResultKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
86497   }
86498 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86499 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86500 
86501 
86502 
86503   template <typename Dispatch>
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const86504   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86505   {
86506     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) );
86507   }
86508 
86509 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86510   template <typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86511   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86512   {
86513     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
86514     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
86515     return support;
86516   }
86517 
86518   template <typename X, typename Y, typename... Z, typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86519   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86520   {
86521     StructureChain<X, Y, Z...> structureChain;
86522     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
86523     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
86524     return structureChain;
86525   }
86526 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86527 
86528   template <typename Dispatch>
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const86529   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86530   {
86531     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) );
86532   }
86533 
86534 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86535   template <typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86536   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86537   {
86538     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
86539     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
86540     return support;
86541   }
86542 
86543   template <typename X, typename Y, typename... Z, typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const86544   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86545   {
86546     StructureChain<X, Y, Z...> structureChain;
86547     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
86548     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
86549     return structureChain;
86550   }
86551 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86552 
86553 
86554 #ifdef VK_ENABLE_BETA_EXTENSIONS
86555   template <typename Dispatch>
getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR * version,Dispatch const & d) const86556   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionKHR* version, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86557   {
86558     return static_cast<Result>( d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionKHR *>( version ) ) );
86559   }
86560 
86561 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86562   template <typename Dispatch>
getAccelerationStructureCompatibilityKHR(const AccelerationStructureVersionKHR & version,Dispatch const & d) const86563   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionKHR & version, Dispatch const & d ) const
86564   {
86565     Result result = static_cast<Result>( d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast<const VkAccelerationStructureVersionKHR *>( &version ) ) );
86566     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureCompatibilityKHR" );
86567   }
86568 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86569 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
86570 
86571 
86572   template <typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const86573   VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86574   {
86575     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) );
86576   }
86577 
86578 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86579   template <typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const86580   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86581   {
86582     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
86583     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) );
86584     return peerMemoryFeatures;
86585   }
86586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86587 
86588   template <typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const86589   VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86590   {
86591     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) );
86592   }
86593 
86594 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86595   template <typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const86596   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86597   {
86598     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
86599     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) );
86600     return peerMemoryFeatures;
86601   }
86602 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86603 
86604 
86605   template <typename Dispatch>
getGroupPresentCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities,Dispatch const & d) const86606   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86607   {
86608     return static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast< VkDeviceGroupPresentCapabilitiesKHR *>( pDeviceGroupPresentCapabilities ) ) );
86609   }
86610 
86611 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86612   template <typename Dispatch>
getGroupPresentCapabilitiesKHR(Dispatch const & d) const86613   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type Device::getGroupPresentCapabilitiesKHR( Dispatch const & d ) const
86614   {
86615     VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
86616     Result result = static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) ) );
86617     return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" );
86618   }
86619 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86620 
86621 
86622 #ifdef VK_USE_PLATFORM_WIN32_KHR
86623   template <typename Dispatch>
getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const86624   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86625   {
86626     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) );
86627   }
86628 
86629 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86630   template <typename Dispatch>
getGroupSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const86631   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
86632   {
86633     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
86634     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
86635     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" );
86636   }
86637 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86638 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86639 
86640 
86641   template <typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const86642   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86643   {
86644     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) );
86645   }
86646 
86647 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86648   template <typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const86649   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
86650   {
86651     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
86652     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
86653     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" );
86654   }
86655 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86656 
86657 
86658   template <typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes,Dispatch const & d) const86659   VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86660   {
86661     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast< VkDeviceSize *>( pCommittedMemoryInBytes ) );
86662   }
86663 
86664 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86665   template <typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const86666   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86667   {
86668     VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes;
86669     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize *>( &committedMemoryInBytes ) );
86670     return committedMemoryInBytes;
86671   }
86672 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86673 
86674 
86675   template <typename Dispatch>
getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const86676   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86677   {
86678     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
86679   }
86680 
86681 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86682   template <typename Dispatch>
getMemoryOpaqueCaptureAddress(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const86683   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86684   {
86685     return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
86686   }
86687 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86688 
86689   template <typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const86690   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86691   {
86692     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
86693   }
86694 
86695 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86696   template <typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const86697   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86698   {
86699     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
86700   }
86701 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86702 
86703 
86704   template <typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const86705   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86706   {
86707     return d.vkGetDeviceProcAddr( m_device, pName );
86708   }
86709 
86710 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86711   template <typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const86712   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86713   {
86714     return d.vkGetDeviceProcAddr( m_device, name.c_str() );
86715   }
86716 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86717 
86718 
86719   template <typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const86720   VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86721   {
86722     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast< VkQueue *>( pQueue ) );
86723   }
86724 
86725 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86726   template <typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,Dispatch const & d) const86727   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86728   {
86729     VULKAN_HPP_NAMESPACE::Queue queue;
86730     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( &queue ) );
86731     return queue;
86732   }
86733 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86734 
86735 
86736   template <typename Dispatch>
getQueue2(const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 * pQueueInfo,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const86737   VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86738   {
86739     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2 *>( pQueueInfo ), reinterpret_cast< VkQueue *>( pQueue ) );
86740   }
86741 
86742 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86743   template <typename Dispatch>
getQueue2(const DeviceQueueInfo2 & queueInfo,Dispatch const & d) const86744   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86745   {
86746     VULKAN_HPP_NAMESPACE::Queue queue;
86747     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2 *>( &queueInfo ), reinterpret_cast<VkQueue *>( &queue ) );
86748     return queue;
86749   }
86750 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86751 
86752 
86753 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86754   template <typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const86755   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86756   {
86757     return static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
86758   }
86759 #else
86760   template <typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const86761   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
86762   {
86763     Result result = static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
86764     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus", { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } );
86765   }
86766 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86767 
86768 
86769 
86770   template <typename Dispatch>
getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const86771   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86772   {
86773     return static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
86774   }
86775 
86776 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86777   template <typename Dispatch>
getFenceFdKHR(const FenceGetFdInfoKHR & getFdInfo,Dispatch const & d) const86778   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
86779   {
86780     int fd;
86781     Result result = static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd ) );
86782     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" );
86783   }
86784 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86785 
86786 
86787 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
86788   template <typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const86789   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86790   {
86791     return static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
86792   }
86793 #else
86794   template <typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const86795   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
86796   {
86797     Result result = static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
86798     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
86799   }
86800 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86801 
86802 
86803 
86804 #ifdef VK_USE_PLATFORM_WIN32_KHR
86805   template <typename Dispatch>
getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const86806   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86807   {
86808     return static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
86809   }
86810 
86811 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86812   template <typename Dispatch>
getFenceWin32HandleKHR(const FenceGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const86813   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
86814   {
86815     HANDLE handle;
86816     Result result = static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
86817     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" );
86818   }
86819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86820 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
86821 
86822 
86823   template <typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86824   VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86825   {
86826     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86827   }
86828 
86829 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86830   template <typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const86831   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86832   {
86833     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86834     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86835     return memoryRequirements;
86836   }
86837 
86838   template <typename X, typename Y, typename... Z, typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const86839   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86840   {
86841     StructureChain<X, Y, Z...> structureChain;
86842     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86843     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86844     return structureChain;
86845   }
86846 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86847 
86848 
86849   template <typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties,Dispatch const & d) const86850   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86851   {
86852     return static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast< VkImageDrmFormatModifierPropertiesEXT *>( pProperties ) ) );
86853   }
86854 
86855 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86856   template <typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const86857   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
86858   {
86859     VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
86860     Result result = static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( &properties ) ) );
86861     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageDrmFormatModifierPropertiesEXT" );
86862   }
86863 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86864 
86865 
86866   template <typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const86867   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86868   {
86869     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) );
86870   }
86871 
86872 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86873   template <typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const86874   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86875   {
86876     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
86877     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
86878     return memoryRequirements;
86879   }
86880 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86881 
86882 
86883   template <typename Dispatch>
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86884   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86885   {
86886     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86887   }
86888 
86889 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86890   template <typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const86891   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86892   {
86893     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86894     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86895     return memoryRequirements;
86896   }
86897 
86898   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const86899   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86900   {
86901     StructureChain<X, Y, Z...> structureChain;
86902     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86903     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86904     return structureChain;
86905   }
86906 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86907 
86908   template <typename Dispatch>
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const86909   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86910   {
86911     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) );
86912   }
86913 
86914 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86915   template <typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const86916   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86917   {
86918     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
86919     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86920     return memoryRequirements;
86921   }
86922 
86923   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const86924   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
86925   {
86926     StructureChain<X, Y, Z...> structureChain;
86927     VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
86928     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
86929     return structureChain;
86930   }
86931 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86932 
86933 
86934   template <typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements,Dispatch const & d) const86935   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86936   {
86937     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements *>( pSparseMemoryRequirements ) );
86938   }
86939 
86940 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86941   template <typename SparseImageMemoryRequirementsAllocator, typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const86942   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
86943   {
86944     std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements;
86945     uint32_t sparseMemoryRequirementCount;
86946     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
86947     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86948     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
86949     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86950     return sparseMemoryRequirements;
86951   }
86952 
86953   template <typename SparseImageMemoryRequirementsAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements>::value, int>::type >
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator,Dispatch const & d) const86954   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d ) const
86955   {
86956     std::vector<SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements( sparseImageMemoryRequirementsAllocator );
86957     uint32_t sparseMemoryRequirementCount;
86958     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
86959     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86960     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
86961     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86962     return sparseMemoryRequirements;
86963   }
86964 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86965 
86966 
86967   template <typename Dispatch>
getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const86968   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
86969   {
86970     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
86971   }
86972 
86973 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
86974   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch>
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const86975   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
86976   {
86977     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
86978     uint32_t sparseMemoryRequirementCount;
86979     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
86980     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86981     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
86982     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86983     return sparseMemoryRequirements;
86984   }
86985 
86986   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements2>::value, int>::type >
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,Dispatch const & d) const86987   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const
86988   {
86989     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator );
86990     uint32_t sparseMemoryRequirementCount;
86991     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
86992     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
86993     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
86994     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
86995     return sparseMemoryRequirements;
86996   }
86997 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
86998 
86999   template <typename Dispatch>
getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const87000   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87001   {
87002     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
87003   }
87004 
87005 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87006   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch>
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const87007   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
87008   {
87009     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
87010     uint32_t sparseMemoryRequirementCount;
87011     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
87012     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
87013     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
87014     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
87015     return sparseMemoryRequirements;
87016   }
87017 
87018   template <typename SparseImageMemoryRequirements2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageMemoryRequirements2>::value, int>::type >
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,Dispatch const & d) const87019   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const
87020   {
87021     std::vector<SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator );
87022     uint32_t sparseMemoryRequirementCount;
87023     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
87024     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
87025     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
87026     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
87027     return sparseMemoryRequirements;
87028   }
87029 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87030 
87031 
87032   template <typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource * pSubresource,VULKAN_HPP_NAMESPACE::SubresourceLayout * pLayout,Dispatch const & d) const87033   VULKAN_HPP_INLINE void Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource* pSubresource, VULKAN_HPP_NAMESPACE::SubresourceLayout* pLayout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87034   {
87035     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource *>( pSubresource ), reinterpret_cast< VkSubresourceLayout *>( pLayout ) );
87036   }
87037 
87038 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87039   template <typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const ImageSubresource & subresource,Dispatch const & d) const87040   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87041   {
87042     VULKAN_HPP_NAMESPACE::SubresourceLayout layout;
87043     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource *>( &subresource ), reinterpret_cast<VkSubresourceLayout *>( &layout ) );
87044     return layout;
87045   }
87046 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87047 
87048 
87049   template <typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties,Dispatch const & d) const87050   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87051   {
87052     return static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast< VkImageViewAddressPropertiesNVX *>( pProperties ) ) );
87053   }
87054 
87055 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87056   template <typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,Dispatch const & d) const87057   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX>::type Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const & d ) const
87058   {
87059     VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
87060     Result result = static_cast<Result>( d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX *>( &properties ) ) );
87061     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewAddressNVX" );
87062   }
87063 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87064 
87065 
87066   template <typename Dispatch>
getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,Dispatch const & d) const87067   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87068   {
87069     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( pInfo ) );
87070   }
87071 
87072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87073   template <typename Dispatch>
getImageViewHandleNVX(const ImageViewHandleInfoNVX & info,Dispatch const & d) const87074   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87075   {
87076     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( &info ) );
87077   }
87078 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87079 
87080 
87081 #ifdef VK_USE_PLATFORM_ANDROID_KHR
87082   template <typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer,Dispatch const & d) const87083   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87084   {
87085     return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( pInfo ), pBuffer ) );
87086   }
87087 
87088 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87089   template <typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const MemoryGetAndroidHardwareBufferInfoANDROID & info,Dispatch const & d) const87090   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<struct AHardwareBuffer*>::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d ) const
87091   {
87092     struct AHardwareBuffer* buffer;
87093     Result result = static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer ) );
87094     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" );
87095   }
87096 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87097 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
87098 
87099 
87100   template <typename Dispatch>
getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const87101   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87102   {
87103     return static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
87104   }
87105 
87106 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87107   template <typename Dispatch>
getMemoryFdKHR(const MemoryGetFdInfoKHR & getFdInfo,Dispatch const & d) const87108   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
87109   {
87110     int fd;
87111     Result result = static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd ) );
87112     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" );
87113   }
87114 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87115 
87116 
87117   template <typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR * pMemoryFdProperties,Dispatch const & d) const87118   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87119   {
87120     return static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast< VkMemoryFdPropertiesKHR *>( pMemoryFdProperties ) ) );
87121   }
87122 
87123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87124   template <typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,Dispatch const & d) const87125   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR>::type Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const & d ) const
87126   {
87127     VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
87128     Result result = static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) ) );
87129     return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" );
87130   }
87131 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87132 
87133 
87134   template <typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,Dispatch const & d) const87135   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87136   {
87137     return static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast< VkMemoryHostPointerPropertiesEXT *>( pMemoryHostPointerProperties ) ) );
87138   }
87139 
87140 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87141   template <typename Dispatch>
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,Dispatch const & d) const87142   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT>::type Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const & d ) const
87143   {
87144     VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
87145     Result result = static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) ) );
87146     return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" );
87147   }
87148 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87149 
87150 
87151 #ifdef VK_USE_PLATFORM_WIN32_KHR
87152   template <typename Dispatch>
getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const87153   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87154   {
87155     return static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
87156   }
87157 
87158 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87159   template <typename Dispatch>
getMemoryWin32HandleKHR(const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const87160   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
87161   {
87162     HANDLE handle;
87163     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
87164     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" );
87165   }
87166 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87167 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87168 
87169 
87170 #ifdef VK_USE_PLATFORM_WIN32_KHR
87171   template <typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle,Dispatch const & d) const87172   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87173   {
87174     return static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), pHandle ) );
87175   }
87176 
87177 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87178   template <typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,Dispatch const & d) const87179   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const & d ) const
87180   {
87181     HANDLE handle;
87182     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
87183     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleNV" );
87184   }
87185 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87186 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87187 
87188 
87189 #ifdef VK_USE_PLATFORM_WIN32_KHR
87190   template <typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,Dispatch const & d) const87191   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87192   {
87193     return static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast< VkMemoryWin32HandlePropertiesKHR *>( pMemoryWin32HandleProperties ) ) );
87194   }
87195 
87196 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87197   template <typename Dispatch>
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,Dispatch const & d) const87198   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR>::type Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const & d ) const
87199   {
87200     VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
87201     Result result = static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) ) );
87202     return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" );
87203   }
87204 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87205 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87206 
87207 
87208   template <typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings,Dispatch const & d) const87209   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87210   {
87211     return static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), pPresentationTimingCount, reinterpret_cast< VkPastPresentationTimingGOOGLE *>( pPresentationTimings ) ) );
87212   }
87213 
87214 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87215   template <typename PastPresentationTimingGOOGLEAllocator, typename Dispatch>
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87216   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
87217   {
87218     std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings;
87219     uint32_t presentationTimingCount;
87220     Result result;
87221     do
87222     {
87223       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
87224       if ( ( result == Result::eSuccess ) && presentationTimingCount )
87225       {
87226         presentationTimings.resize( presentationTimingCount );
87227         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) );
87228         VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
87229       }
87230     } while ( result == Result::eIncomplete );
87231     if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) )
87232     {
87233       presentationTimings.resize( presentationTimingCount );
87234     }
87235     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
87236   }
87237 
87238   template <typename PastPresentationTimingGOOGLEAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PastPresentationTimingGOOGLE>::value, int>::type >
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator,Dispatch const & d) const87239   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, Dispatch const & d ) const
87240   {
87241     std::vector<PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings( pastPresentationTimingGOOGLEAllocator );
87242     uint32_t presentationTimingCount;
87243     Result result;
87244     do
87245     {
87246       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
87247       if ( ( result == Result::eSuccess ) && presentationTimingCount )
87248       {
87249         presentationTimings.resize( presentationTimingCount );
87250         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) );
87251         VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
87252       }
87253     } while ( result == Result::eIncomplete );
87254     if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) )
87255     {
87256       presentationTimings.resize( presentationTimingCount );
87257     }
87258     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
87259   }
87260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87261 
87262 
87263   template <typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,VULKAN_HPP_NAMESPACE::PerformanceValueINTEL * pValue,Dispatch const & d) const87264   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87265   {
87266     return static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast< VkPerformanceValueINTEL *>( pValue ) ) );
87267   }
87268 
87269 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87270   template <typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,Dispatch const & d) const87271   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL>::type Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const & d ) const
87272   {
87273     VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
87274     Result result = static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL *>( &value ) ) );
87275     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" );
87276   }
87277 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87278 
87279 
87280   template <typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,size_t * pDataSize,void * pData,Dispatch const & d) const87281   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87282   {
87283     return static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), pDataSize, pData ) );
87284   }
87285 
87286 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87287   template <typename Uint8_tAllocator, typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Dispatch const & d) const87288   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d ) const
87289   {
87290     std::vector<uint8_t, Uint8_tAllocator> data;
87291     size_t dataSize;
87292     Result result;
87293     do
87294     {
87295       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
87296       if ( ( result == Result::eSuccess ) && dataSize )
87297       {
87298         data.resize( dataSize );
87299         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
87300         VULKAN_HPP_ASSERT( dataSize <= data.size() );
87301       }
87302     } while ( result == Result::eIncomplete );
87303     if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) )
87304     {
87305       data.resize( dataSize );
87306     }
87307     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
87308   }
87309 
87310   template <typename Uint8_tAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type >
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const87311   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
87312   {
87313     std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
87314     size_t dataSize;
87315     Result result;
87316     do
87317     {
87318       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
87319       if ( ( result == Result::eSuccess ) && dataSize )
87320       {
87321         data.resize( dataSize );
87322         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
87323         VULKAN_HPP_ASSERT( dataSize <= data.size() );
87324       }
87325     } while ( result == Result::eIncomplete );
87326     if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) )
87327     {
87328       data.resize( dataSize );
87329     }
87330     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
87331   }
87332 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87333 
87334 
87335   template <typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations,Dispatch const & d) const87336   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87337   {
87338     return static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( pExecutableInfo ), pInternalRepresentationCount, reinterpret_cast< VkPipelineExecutableInternalRepresentationKHR *>( pInternalRepresentations ) ) );
87339   }
87340 
87341 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87342   template <typename PipelineExecutableInternalRepresentationKHRAllocator, typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const87343   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const
87344   {
87345     std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator> internalRepresentations;
87346     uint32_t internalRepresentationCount;
87347     Result result;
87348     do
87349     {
87350       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr ) );
87351       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
87352       {
87353         internalRepresentations.resize( internalRepresentationCount );
87354         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) );
87355         VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
87356       }
87357     } while ( result == Result::eIncomplete );
87358     if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) )
87359     {
87360       internalRepresentations.resize( internalRepresentationCount );
87361     }
87362     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
87363   }
87364 
87365   template <typename PipelineExecutableInternalRepresentationKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableInternalRepresentationKHR>::value, int>::type >
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator,Dispatch const & d) const87366   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, Dispatch const & d ) const
87367   {
87368     std::vector<PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator> internalRepresentations( pipelineExecutableInternalRepresentationKHRAllocator );
87369     uint32_t internalRepresentationCount;
87370     Result result;
87371     do
87372     {
87373       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr ) );
87374       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
87375       {
87376         internalRepresentations.resize( internalRepresentationCount );
87377         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) );
87378         VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
87379       }
87380     } while ( result == Result::eIncomplete );
87381     if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) )
87382     {
87383       internalRepresentations.resize( internalRepresentationCount );
87384     }
87385     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
87386   }
87387 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87388 
87389 
87390   template <typename Dispatch>
getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties,Dispatch const & d) const87391   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87392   {
87393     return static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( pPipelineInfo ), pExecutableCount, reinterpret_cast< VkPipelineExecutablePropertiesKHR *>( pProperties ) ) );
87394   }
87395 
87396 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87397   template <typename PipelineExecutablePropertiesKHRAllocator, typename Dispatch>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Dispatch const & d) const87398   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d ) const
87399   {
87400     std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties;
87401     uint32_t executableCount;
87402     Result result;
87403     do
87404     {
87405       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) );
87406       if ( ( result == Result::eSuccess ) && executableCount )
87407       {
87408         properties.resize( executableCount );
87409         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) );
87410         VULKAN_HPP_ASSERT( executableCount <= properties.size() );
87411       }
87412     } while ( result == Result::eIncomplete );
87413     if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) )
87414     {
87415       properties.resize( executableCount );
87416     }
87417     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
87418   }
87419 
87420   template <typename PipelineExecutablePropertiesKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutablePropertiesKHR>::value, int>::type >
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator,Dispatch const & d) const87421   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, Dispatch const & d ) const
87422   {
87423     std::vector<PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties( pipelineExecutablePropertiesKHRAllocator );
87424     uint32_t executableCount;
87425     Result result;
87426     do
87427     {
87428       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) );
87429       if ( ( result == Result::eSuccess ) && executableCount )
87430       {
87431         properties.resize( executableCount );
87432         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) );
87433         VULKAN_HPP_ASSERT( executableCount <= properties.size() );
87434       }
87435     } while ( result == Result::eIncomplete );
87436     if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) )
87437     {
87438       properties.resize( executableCount );
87439     }
87440     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
87441   }
87442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87443 
87444 
87445   template <typename Dispatch>
getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR * pStatistics,Dispatch const & d) const87446   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR* pStatistics, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87447   {
87448     return static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( pExecutableInfo ), pStatisticCount, reinterpret_cast< VkPipelineExecutableStatisticKHR *>( pStatistics ) ) );
87449   }
87450 
87451 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87452   template <typename PipelineExecutableStatisticKHRAllocator, typename Dispatch>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const87453   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const
87454   {
87455     std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics;
87456     uint32_t statisticCount;
87457     Result result;
87458     do
87459     {
87460       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) );
87461       if ( ( result == Result::eSuccess ) && statisticCount )
87462       {
87463         statistics.resize( statisticCount );
87464         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) );
87465         VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
87466       }
87467     } while ( result == Result::eIncomplete );
87468     if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) )
87469     {
87470       statistics.resize( statisticCount );
87471     }
87472     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
87473   }
87474 
87475   template <typename PipelineExecutableStatisticKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PipelineExecutableStatisticKHR>::value, int>::type >
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator,Dispatch const & d) const87476   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, Dispatch const & d ) const
87477   {
87478     std::vector<PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics( pipelineExecutableStatisticKHRAllocator );
87479     uint32_t statisticCount;
87480     Result result;
87481     do
87482     {
87483       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) );
87484       if ( ( result == Result::eSuccess ) && statisticCount )
87485       {
87486         statistics.resize( statisticCount );
87487         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) );
87488         VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
87489       }
87490     } while ( result == Result::eIncomplete );
87491     if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) )
87492     {
87493       statistics.resize( statisticCount );
87494     }
87495     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
87496   }
87497 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87498 
87499 
87500   template <typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t * pData,Dispatch const & d) const87501   VULKAN_HPP_INLINE void Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87502   {
87503     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), pData );
87504   }
87505 
87506 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87507   template <typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,Dispatch const & d) const87508   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87509   {
87510     uint64_t data;
87511     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), &data );
87512     return data;
87513   }
87514 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87515 
87516 
87517   template <typename Dispatch>
getQueryPoolResults(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const87518   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87519   {
87520     return static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
87521   }
87522 
87523 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87524   template <typename T, typename Dispatch>
87525   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
getQueryPoolResults(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,ArrayProxy<T> const & data,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const87526   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getQueryPoolResults(  VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy<T> const &data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d  ) const
87527   {
87528         Result result = static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ), static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
87529     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } );
87530 
87531   }
87532 
87533   template <typename T, typename Allocator, typename Dispatch>
getQueryPoolResults(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const87534   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<T,Allocator>> Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const
87535   {
87536     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
87537     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
87538     Result result = static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ), static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
87539     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
87540   }
87541 
87542   template <typename T, typename Dispatch>
getQueryPoolResult(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const87543   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<T> Device::getQueryPoolResult( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const
87544   {
87545     T data;
87546     Result result = static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, sizeof( T ), reinterpret_cast<void *>( &data ), static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
87547     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
87548   }
87549 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87550 
87551 
87552 #ifdef VK_ENABLE_BETA_EXTENSIONS
87553   template <typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const87554   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87555   {
87556     return static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
87557   }
87558 
87559 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87560   template <typename T, typename Dispatch>
87561   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,ArrayProxy<T> const & data,Dispatch const & d) const87562   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getRayTracingCaptureReplayShaderGroupHandlesKHR(  VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> const &data, Dispatch const &d  ) const
87563   {
87564         Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
87565     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
87566 
87567   }
87568 
87569   template <typename T, typename Allocator, typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,Dispatch const & d) const87570   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<T,Allocator>>::type Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
87571   {
87572     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
87573     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
87574     Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ) ) );
87575     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
87576   }
87577 
87578   template <typename T, typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const87579   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<T>::type Device::getRayTracingCaptureReplayShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
87580   {
87581     T data;
87582     Result result = static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void *>( &data ) ) );
87583     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" );
87584   }
87585 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87586 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
87587 
87588 
87589 #ifdef VK_ENABLE_BETA_EXTENSIONS
87590   template <typename Dispatch>
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const87591   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87592   {
87593     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
87594   }
87595 
87596 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87597   template <typename T, typename Dispatch>
87598   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,ArrayProxy<T> const & data,Dispatch const & d) const87599   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getRayTracingShaderGroupHandlesKHR(  VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> const &data, Dispatch const &d  ) const
87600   {
87601         Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
87602     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesKHR" );
87603 
87604   }
87605 
87606   template <typename T, typename Allocator, typename Dispatch>
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,Dispatch const & d) const87607   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<T,Allocator>>::type Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
87608   {
87609     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
87610     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
87611     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ) ) );
87612     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" );
87613   }
87614 
87615   template <typename T, typename Dispatch>
getRayTracingShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const87616   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<T>::type Device::getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
87617   {
87618     T data;
87619     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void *>( &data ) ) );
87620     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" );
87621   }
87622 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87623 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
87624 
87625   template <typename Dispatch>
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const87626   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87627   {
87628     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
87629   }
87630 
87631 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87632   template <typename T, typename Dispatch>
87633   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,ArrayProxy<T> const & data,Dispatch const & d) const87634   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::getRayTracingShaderGroupHandlesNV(  VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> const &data, Dispatch const &d  ) const
87635   {
87636         Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
87637     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" );
87638 
87639   }
87640 
87641   template <typename T, typename Allocator, typename Dispatch>
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,Dispatch const & d) const87642   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<T,Allocator>>::type Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
87643   {
87644     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
87645     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
87646     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ) ) );
87647     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" );
87648   }
87649 
87650   template <typename T, typename Dispatch>
getRayTracingShaderGroupHandleNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const87651   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<T>::type Device::getRayTracingShaderGroupHandleNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
87652   {
87653     T data;
87654     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast<void *>( &data ) ) );
87655     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" );
87656   }
87657 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87658 
87659 
87660   template <typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties,Dispatch const & d) const87661   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87662   {
87663     return static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast< VkRefreshCycleDurationGOOGLE *>( pDisplayTimingProperties ) ) );
87664   }
87665 
87666 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87667   template <typename Dispatch>
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87668   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE>::type Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
87669   {
87670     VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
87671     Result result = static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) ) );
87672     return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getRefreshCycleDurationGOOGLE" );
87673   }
87674 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87675 
87676 
87677   template <typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,Dispatch const & d) const87678   VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87679   {
87680     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast< VkExtent2D *>( pGranularity ) );
87681   }
87682 
87683 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87684   template <typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Dispatch const & d) const87685   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
87686   {
87687     VULKAN_HPP_NAMESPACE::Extent2D granularity;
87688     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D *>( &granularity ) );
87689     return granularity;
87690   }
87691 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87692 
87693 
87694   template <typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const87695   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87696   {
87697     return static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
87698   }
87699 
87700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87701   template <typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const87702   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const
87703   {
87704     uint64_t value;
87705     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
87706     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValue" );
87707   }
87708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87709 
87710   template <typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const87711   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87712   {
87713     return static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), pValue ) );
87714   }
87715 
87716 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87717   template <typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const87718   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const
87719   {
87720     uint64_t value;
87721     Result result = static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
87722     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValueKHR" );
87723   }
87724 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87725 
87726 
87727   template <typename Dispatch>
getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const87728   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87729   {
87730     return static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
87731   }
87732 
87733 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87734   template <typename Dispatch>
getSemaphoreFdKHR(const SemaphoreGetFdInfoKHR & getFdInfo,Dispatch const & d) const87735   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
87736   {
87737     int fd;
87738     Result result = static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd ) );
87739     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" );
87740   }
87741 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87742 
87743 
87744 #ifdef VK_USE_PLATFORM_WIN32_KHR
87745   template <typename Dispatch>
getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const87746   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87747   {
87748     return static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
87749   }
87750 
87751 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87752   template <typename Dispatch>
getSemaphoreWin32HandleKHR(const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const87753   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
87754   {
87755     HANDLE handle;
87756     Result result = static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
87757     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" );
87758   }
87759 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87760 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87761 
87762 
87763   template <typename Dispatch>
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo,Dispatch const & d) const87764   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87765   {
87766     return static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), pInfoSize, pInfo ) );
87767   }
87768 
87769 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87770   template <typename Uint8_tAllocator, typename Dispatch>
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Dispatch const & d) const87771   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const & d ) const
87772   {
87773     std::vector<uint8_t, Uint8_tAllocator> info;
87774     size_t infoSize;
87775     Result result;
87776     do
87777     {
87778       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
87779       if ( ( result == Result::eSuccess ) && infoSize )
87780       {
87781         info.resize( infoSize );
87782         result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, reinterpret_cast<void *>( info.data() ) ) );
87783         VULKAN_HPP_ASSERT( infoSize <= info.size() );
87784       }
87785     } while ( result == Result::eIncomplete );
87786     if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) )
87787     {
87788       info.resize( infoSize );
87789     }
87790     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
87791   }
87792 
87793   template <typename Uint8_tAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type >
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const87794   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
87795   {
87796     std::vector<uint8_t, Uint8_tAllocator> info( uint8_tAllocator );
87797     size_t infoSize;
87798     Result result;
87799     do
87800     {
87801       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
87802       if ( ( result == Result::eSuccess ) && infoSize )
87803       {
87804         info.resize( infoSize );
87805         result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, reinterpret_cast<void *>( info.data() ) ) );
87806         VULKAN_HPP_ASSERT( infoSize <= info.size() );
87807       }
87808     } while ( result == Result::eIncomplete );
87809     if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) )
87810     {
87811       info.resize( infoSize );
87812     }
87813     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
87814   }
87815 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87816 
87817 
87818   template <typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue,Dispatch const & d) const87819   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87820   {
87821     return static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), pCounterValue ) );
87822   }
87823 
87824 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87825   template <typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,Dispatch const & d) const87826   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const & d ) const
87827   {
87828     uint64_t counterValue;
87829     Result result = static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
87830     return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainCounterEXT" );
87831   }
87832 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87833 
87834 
87835   template <typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VULKAN_HPP_NAMESPACE::Image * pSwapchainImages,Dispatch const & d) const87836   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VULKAN_HPP_NAMESPACE::Image* pSwapchainImages, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87837   {
87838     return static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), pSwapchainImageCount, reinterpret_cast< VkImage *>( pSwapchainImages ) ) );
87839   }
87840 
87841 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87842   template <typename ImageAllocator, typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87843   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image, ImageAllocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
87844   {
87845     std::vector<Image, ImageAllocator> swapchainImages;
87846     uint32_t swapchainImageCount;
87847     Result result;
87848     do
87849     {
87850       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
87851       if ( ( result == Result::eSuccess ) && swapchainImageCount )
87852       {
87853         swapchainImages.resize( swapchainImageCount );
87854         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) ) );
87855         VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
87856       }
87857     } while ( result == Result::eIncomplete );
87858     if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) )
87859     {
87860       swapchainImages.resize( swapchainImageCount );
87861     }
87862     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
87863   }
87864 
87865   template <typename ImageAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Image>::value, int>::type >
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,ImageAllocator & imageAllocator,Dispatch const & d) const87866   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image, ImageAllocator>>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d ) const
87867   {
87868     std::vector<Image, ImageAllocator> swapchainImages( imageAllocator );
87869     uint32_t swapchainImageCount;
87870     Result result;
87871     do
87872     {
87873       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
87874       if ( ( result == Result::eSuccess ) && swapchainImageCount )
87875       {
87876         swapchainImages.resize( swapchainImageCount );
87877         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) ) );
87878         VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
87879       }
87880     } while ( result == Result::eIncomplete );
87881     if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) )
87882     {
87883       swapchainImages.resize( swapchainImageCount );
87884     }
87885     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
87886   }
87887 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87888 
87889 
87890 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
87891   template <typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87892   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87893   {
87894     return static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
87895   }
87896 #else
87897   template <typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const87898   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
87899   {
87900     Result result = static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
87901     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainStatusKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
87902   }
87903 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87904 
87905 
87906 
87907   template <typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,size_t * pDataSize,void * pData,Dispatch const & d) const87908   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87909   {
87910     return static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), pDataSize, pData ) );
87911   }
87912 
87913 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87914   template <typename Uint8_tAllocator, typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Dispatch const & d) const87915   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const & d ) const
87916   {
87917     std::vector<uint8_t, Uint8_tAllocator> data;
87918     size_t dataSize;
87919     Result result;
87920     do
87921     {
87922       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
87923       if ( ( result == Result::eSuccess ) && dataSize )
87924       {
87925         data.resize( dataSize );
87926         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
87927         VULKAN_HPP_ASSERT( dataSize <= data.size() );
87928       }
87929     } while ( result == Result::eIncomplete );
87930     if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) )
87931     {
87932       data.resize( dataSize );
87933     }
87934     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
87935   }
87936 
87937   template <typename Uint8_tAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, uint8_t>::value, int>::type >
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const87938   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
87939   {
87940     std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
87941     size_t dataSize;
87942     Result result;
87943     do
87944     {
87945       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
87946       if ( ( result == Result::eSuccess ) && dataSize )
87947       {
87948         data.resize( dataSize );
87949         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
87950         VULKAN_HPP_ASSERT( dataSize <= data.size() );
87951       }
87952     } while ( result == Result::eIncomplete );
87953     if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) )
87954     {
87955       data.resize( dataSize );
87956     }
87957     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
87958   }
87959 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87960 
87961 
87962   template <typename Dispatch>
importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo,Dispatch const & d) const87963   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87964   {
87965     return static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( pImportFenceFdInfo ) ) );
87966   }
87967 
87968 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87969   template <typename Dispatch>
importFenceFdKHR(const ImportFenceFdInfoKHR & importFenceFdInfo,Dispatch const & d) const87970   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d ) const
87971   {
87972     Result result = static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) );
87973     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
87974   }
87975 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87976 
87977 
87978 #ifdef VK_USE_PLATFORM_WIN32_KHR
87979   template <typename Dispatch>
importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo,Dispatch const & d) const87980   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87981   {
87982     return static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( pImportFenceWin32HandleInfo ) ) );
87983   }
87984 
87985 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
87986   template <typename Dispatch>
importFenceWin32HandleKHR(const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo,Dispatch const & d) const87987   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d ) const
87988   {
87989     Result result = static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) );
87990     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
87991   }
87992 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
87993 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
87994 
87995 
87996   template <typename Dispatch>
importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,Dispatch const & d) const87997   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
87998   {
87999     return static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( pImportSemaphoreFdInfo ) ) );
88000   }
88001 
88002 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88003   template <typename Dispatch>
importSemaphoreFdKHR(const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo,Dispatch const & d) const88004   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d ) const
88005   {
88006     Result result = static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) );
88007     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
88008   }
88009 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88010 
88011 
88012 #ifdef VK_USE_PLATFORM_WIN32_KHR
88013   template <typename Dispatch>
importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo,Dispatch const & d) const88014   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88015   {
88016     return static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( pImportSemaphoreWin32HandleInfo ) ) );
88017   }
88018 
88019 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88020   template <typename Dispatch>
importSemaphoreWin32HandleKHR(const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo,Dispatch const & d) const88021   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d ) const
88022   {
88023     Result result = static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) );
88024     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
88025   }
88026 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88027 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
88028 
88029 
88030   template <typename Dispatch>
initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo,Dispatch const & d) const88031   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88032   {
88033     return static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( pInitializeInfo ) ) );
88034   }
88035 
88036 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88037   template <typename Dispatch>
initializePerformanceApiINTEL(const InitializePerformanceApiInfoINTEL & initializeInfo,Dispatch const & d) const88038   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d ) const
88039   {
88040     Result result = static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) );
88041     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
88042   }
88043 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88044 
88045 
88046   template <typename Dispatch>
invalidateMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const88047   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88048   {
88049     return static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
88050   }
88051 
88052 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88053   template <typename Dispatch>
invalidateMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const88054   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::invalidateMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges, Dispatch const & d ) const
88055   {
88056     Result result = static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
88057     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
88058   }
88059 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88060 
88061 
88062   template <typename Dispatch>
mapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::DeviceSize size,VULKAN_HPP_NAMESPACE::MemoryMapFlags flags,void ** ppData,Dispatch const & d) const88063   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, void** ppData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88064   {
88065     return static_cast<Result>( d.vkMapMemory( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( offset ), static_cast<VkDeviceSize>( size ), static_cast<VkMemoryMapFlags>( flags ), ppData ) );
88066   }
88067 
88068 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88069   template <typename Dispatch>
mapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::DeviceSize size,VULKAN_HPP_NAMESPACE::MemoryMapFlags flags,Dispatch const & d) const88070   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void*>::type Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, Dispatch const & d ) const
88071   {
88072     void* pData;
88073     Result result = static_cast<Result>( d.vkMapMemory( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( offset ), static_cast<VkDeviceSize>( size ), static_cast<VkMemoryMapFlags>( flags ), &pData ) );
88074     return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory" );
88075   }
88076 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88077 
88078 
88079   template <typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches,Dispatch const & d) const88080   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::PipelineCache* pSrcCaches, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88081   {
88082     return static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCacheCount, reinterpret_cast<const VkPipelineCache *>( pSrcCaches ) ) );
88083   }
88084 
88085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88086   template <typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches,Dispatch const & d) const88087   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches, Dispatch const & d ) const
88088   {
88089     Result result = static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size(), reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) ) );
88090     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" );
88091   }
88092 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88093 
88094 
88095   template <typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches,Dispatch const & d) const88096   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pSrcCaches, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88097   {
88098     return static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCacheCount, reinterpret_cast<const VkValidationCacheEXT *>( pSrcCaches ) ) );
88099   }
88100 
88101 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88102   template <typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches,Dispatch const & d) const88103   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches, Dispatch const & d ) const
88104   {
88105     Result result = static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size(), reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) ) );
88106     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" );
88107   }
88108 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88109 
88110 
88111   template <typename Dispatch>
registerEventEXT(const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT * pDeviceEventInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const88112   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88113   {
88114     return static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT *>( pDeviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) );
88115   }
88116 
88117 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88118   template <typename Dispatch>
registerEventEXT(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88119   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88120   {
88121     VULKAN_HPP_NAMESPACE::Fence fence;
88122     Result result = static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
88123     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXT" );
88124   }
88125 
88126 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88127   template <typename Dispatch>
registerEventEXTUnique(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88128   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type Device::registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88129   {
88130     VULKAN_HPP_NAMESPACE::Fence fence;
88131     Result result = static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
88132     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
88133     return createResultValue<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXTUnique", deleter );
88134   }
88135 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88136 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88137 
88138 
88139   template <typename Dispatch>
registerDisplayEventEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT * pDisplayEventInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const88140   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88141   {
88142     return static_cast<Result>( d.vkRegisterDisplayEventEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayEventInfoEXT *>( pDisplayEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) );
88143   }
88144 
88145 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88146   template <typename Dispatch>
registerDisplayEventEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88147   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88148   {
88149     VULKAN_HPP_NAMESPACE::Fence fence;
88150     Result result = static_cast<Result>( d.vkRegisterDisplayEventEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
88151     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXT" );
88152   }
88153 
88154 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88155   template <typename Dispatch>
registerDisplayEventEXTUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88156   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type Device::registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88157   {
88158     VULKAN_HPP_NAMESPACE::Fence fence;
88159     Result result = static_cast<Result>( d.vkRegisterDisplayEventEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence *>( &fence ) ) );
88160     ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
88161     return createResultValue<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXTUnique", deleter );
88162   }
88163 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88164 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88165 
88166 
88167 #ifdef VK_USE_PLATFORM_WIN32_KHR
88168 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88169   template <typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const88170   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88171   {
88172     return static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
88173   }
88174 #else
88175   template <typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const88176   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
88177   {
88178     Result result = static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
88179     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" );
88180   }
88181 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88182 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
88183 
88184 
88185 
88186 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88187   template <typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const88188   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88189   {
88190     return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
88191   }
88192 #else
88193   template <typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const88194   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
88195   {
88196     Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
88197     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" );
88198   }
88199 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88200 
88201 
88202 
88203 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88204   template <typename Dispatch>
release(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const88205   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88206   {
88207     return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
88208   }
88209 #else
88210   template <typename Dispatch>
release(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const88211   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
88212   {
88213     Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
88214     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::release" );
88215   }
88216 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88217 
88218 
88219 
88220   template <typename Dispatch>
releaseProfilingLockKHR(Dispatch const & d) const88221   VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88222   {
88223     d.vkReleaseProfilingLockKHR( m_device );
88224   }
88225 
88226 
88227 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88228   template <typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const88229   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88230   {
88231     return static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
88232   }
88233 #else
88234   template <typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const88235   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d ) const
88236   {
88237     Result result = static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
88238     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" );
88239   }
88240 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88241 
88242 
88243 
88244 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88245   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const88246   VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88247   {
88248     return static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
88249   }
88250 #else
88251   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const88252   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d ) const
88253   {
88254     Result result = static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
88255     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetDescriptorPool" );
88256   }
88257 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88258 
88259 
88260 
88261 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88262   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const88263   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88264   {
88265     return static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
88266   }
88267 #else
88268   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const88269   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
88270   {
88271     Result result = static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
88272     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" );
88273   }
88274 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88275 
88276 
88277 
88278   template <typename Dispatch>
resetFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,Dispatch const & d) const88279   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88280   {
88281     return static_cast<Result>( d.vkResetFences( m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ) ) );
88282   }
88283 
88284 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88285   template <typename Dispatch>
resetFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,Dispatch const & d) const88286   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d ) const
88287   {
88288     Result result = static_cast<Result>( d.vkResetFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) );
88289     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
88290   }
88291 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88292 
88293 
88294   template <typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const88295   VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88296   {
88297     d.vkResetQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
88298   }
88299 
88300   template <typename Dispatch>
resetQueryPoolEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const88301   VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88302   {
88303     d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
88304   }
88305 
88306 
88307   template <typename Dispatch>
setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo,Dispatch const & d) const88308   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88309   {
88310     return static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( pNameInfo ) ) );
88311   }
88312 
88313 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88314   template <typename Dispatch>
setDebugUtilsObjectNameEXT(const DebugUtilsObjectNameInfoEXT & nameInfo,Dispatch const & d) const88315   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
88316   {
88317     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) );
88318     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
88319   }
88320 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88321 
88322 
88323   template <typename Dispatch>
setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo,Dispatch const & d) const88324   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88325   {
88326     return static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( pTagInfo ) ) );
88327   }
88328 
88329 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88330   template <typename Dispatch>
setDebugUtilsObjectTagEXT(const DebugUtilsObjectTagInfoEXT & tagInfo,Dispatch const & d) const88331   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
88332   {
88333     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) );
88334     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
88335   }
88336 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88337 
88338 
88339 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88340   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const88341   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88342   {
88343     return static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
88344   }
88345 #else
88346   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const88347   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
88348   {
88349     Result result = static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
88350     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" );
88351   }
88352 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88353 
88354 
88355 
88356   template <typename Dispatch>
setHdrMetadataEXT(uint32_t swapchainCount,const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains,const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata,Dispatch const & d) const88357   VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, const VULKAN_HPP_NAMESPACE::HdrMetadataEXT* pMetadata, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88358   {
88359     d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast<const VkSwapchainKHR *>( pSwapchains ), reinterpret_cast<const VkHdrMetadataEXT *>( pMetadata ) );
88360   }
88361 
88362 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88363   template <typename Dispatch>
setHdrMetadataEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains,ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata,Dispatch const & d) const88364   VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains, ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
88365   {
88366 #ifdef VULKAN_HPP_NO_EXCEPTIONS
88367     VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
88368 #else
88369     if ( swapchains.size() != metadata.size() )
88370   {
88371     throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" );
88372   }
88373 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
88374 
88375     d.vkSetHdrMetadataEXT( m_device, swapchains.size(), reinterpret_cast<const VkSwapchainKHR *>( swapchains.data() ), reinterpret_cast<const VkHdrMetadataEXT *>( metadata.data() ) );
88376   }
88377 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88378 
88379 
88380   template <typename Dispatch>
setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain,VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable,Dispatch const & d) const88381   VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88382   {
88383     d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
88384   }
88385 
88386 
88387 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
88388   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const88389   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88390   {
88391     return static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
88392   }
88393 #else
88394   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data,Dispatch const & d) const88395   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d ) const
88396   {
88397     Result result = static_cast<Result>( d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType ), objectHandle, static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), data ) );
88398     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" );
88399   }
88400 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88401 
88402 
88403 
88404   template <typename Dispatch>
signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const88405   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88406   {
88407     return static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
88408   }
88409 
88410 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88411   template <typename Dispatch>
signalSemaphore(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const88412   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
88413   {
88414     Result result = static_cast<Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
88415     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
88416   }
88417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88418 
88419   template <typename Dispatch>
signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const88420   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88421   {
88422     return static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
88423   }
88424 
88425 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88426   template <typename Dispatch>
signalSemaphoreKHR(const SemaphoreSignalInfo & signalInfo,Dispatch const & d) const88427   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
88428   {
88429     Result result = static_cast<Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
88430     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
88431   }
88432 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88433 
88434 
88435   template <typename Dispatch>
trimCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const88436   VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88437   {
88438     d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
88439   }
88440 
88441   template <typename Dispatch>
trimCommandPoolKHR(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const88442   VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88443   {
88444     d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
88445   }
88446 
88447 
88448   template <typename Dispatch>
uninitializePerformanceApiINTEL(Dispatch const & d) const88449   VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88450   {
88451     d.vkUninitializePerformanceApiINTEL( m_device );
88452   }
88453 
88454 
88455   template <typename Dispatch>
unmapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const88456   VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88457   {
88458     d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
88459   }
88460 
88461 
88462   template <typename Dispatch>
updateDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const88463   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88464   {
88465     d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
88466   }
88467 
88468   template <typename Dispatch>
updateDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const88469   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88470   {
88471     d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
88472   }
88473 
88474 
88475   template <typename Dispatch>
updateDescriptorSets(uint32_t descriptorWriteCount,const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VULKAN_HPP_NAMESPACE::CopyDescriptorSet * pDescriptorCopies,Dispatch const & d) const88476   VULKAN_HPP_INLINE void Device::updateDescriptorSets( uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VULKAN_HPP_NAMESPACE::CopyDescriptorSet* pDescriptorCopies, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88477   {
88478     d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast<const VkCopyDescriptorSet *>( pDescriptorCopies ) );
88479   }
88480 
88481 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88482   template <typename Dispatch>
updateDescriptorSets(ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies,Dispatch const & d) const88483   VULKAN_HPP_INLINE void Device::updateDescriptorSets( ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites, ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
88484   {
88485     d.vkUpdateDescriptorSets( m_device, descriptorWrites.size(), reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ), descriptorCopies.size(), reinterpret_cast<const VkCopyDescriptorSet *>( descriptorCopies.data() ) );
88486   }
88487 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88488 
88489 
88490   template <typename Dispatch>
waitForFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const88491   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88492   {
88493     return static_cast<Result>( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast<const VkFence *>( pFences ), static_cast<VkBool32>( waitAll ), timeout ) );
88494   }
88495 
88496 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88497   template <typename Dispatch>
waitForFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const88498   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d ) const
88499   {
88500     Result result = static_cast<Result>( d.vkWaitForFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
88501     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
88502   }
88503 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88504 
88505 
88506   template <typename Dispatch>
waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const88507   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88508   {
88509     return static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
88510   }
88511 
88512 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88513   template <typename Dispatch>
waitSemaphores(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const88514   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
88515   {
88516     Result result = static_cast<Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
88517     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
88518   }
88519 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88520 
88521   template <typename Dispatch>
waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const88522   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88523   {
88524     return static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
88525   }
88526 
88527 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88528   template <typename Dispatch>
waitSemaphoresKHR(const SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const88529   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
88530   {
88531     Result result = static_cast<Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
88532     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
88533   }
88534 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88535 
88536 
88537 #ifdef VK_ENABLE_BETA_EXTENSIONS
88538   template <typename Dispatch>
writeAccelerationStructuresPropertiesKHR(uint32_t accelerationStructureCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,void * pData,size_t stride,Dispatch const & d) const88539   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, void* pData, size_t stride, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88540   {
88541     return static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), dataSize, pData, stride ) );
88542   }
88543 
88544 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88545   template <typename T, typename Dispatch>
88546   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,ArrayProxy<T> const & data,size_t stride,Dispatch const & d) const88547   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::writeAccelerationStructuresPropertiesKHR(  ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const &accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, ArrayProxy<T> const &data, size_t stride, Dispatch const &d  ) const
88548   {
88549         Result result = static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size() , reinterpret_cast<const VkAccelerationStructureKHR*>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ), stride ) );
88550     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::writeAccelerationStructuresPropertiesKHR" );
88551 
88552   }
88553 
88554   template <typename T, typename Allocator, typename Dispatch>
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,size_t stride,Dispatch const & d) const88555   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<std::vector<T,Allocator>>::type Device::writeAccelerationStructuresPropertiesKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride, Dispatch const & d ) const
88556   {
88557     VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 );
88558     std::vector<T,Allocator> data( dataSize / sizeof( T ) );
88559     Result result = static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), data.size() * sizeof( T ), reinterpret_cast<void *>( data.data() ), stride ) );
88560     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" );
88561   }
88562 
88563   template <typename T, typename Dispatch>
writeAccelerationStructuresPropertyKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t stride,Dispatch const & d) const88564   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<T>::type Device::writeAccelerationStructuresPropertyKHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride, Dispatch const & d ) const
88565   {
88566     T data;
88567     Result result = static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size(), reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), sizeof( T ), reinterpret_cast<void *>( &data ), stride ) );
88568     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" );
88569   }
88570 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88571 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
88572 
88573 
88574 #ifdef VK_USE_PLATFORM_ANDROID_KHR
88575   template <typename Dispatch>
createAndroidSurfaceKHR(const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88576   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88577   {
88578     return static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88579   }
88580 
88581 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88582   template <typename Dispatch>
createAndroidSurfaceKHR(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88583   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88584   {
88585     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88586     Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88587     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" );
88588   }
88589 
88590 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88591   template <typename Dispatch>
createAndroidSurfaceKHRUnique(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88592   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88593   {
88594     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88595     Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88596     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88597     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHRUnique", deleter );
88598   }
88599 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88600 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88601 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
88602 
88603 
88604   template <typename Dispatch>
createDebugReportCallbackEXT(const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT * pCallback,Dispatch const & d) const88605   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88606   {
88607     return static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDebugReportCallbackEXT *>( pCallback ) ) );
88608   }
88609 
88610 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88611   template <typename Dispatch>
createDebugReportCallbackEXT(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88612   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88613   {
88614     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
88615     Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) );
88616     return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" );
88617   }
88618 
88619 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88620   template <typename Dispatch>
createDebugReportCallbackEXTUnique(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88621   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88622   {
88623     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
88624     Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) );
88625     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88626     return createResultValue<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXTUnique", deleter );
88627   }
88628 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88629 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88630 
88631 
88632   template <typename Dispatch>
createDebugUtilsMessengerEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT * pMessenger,Dispatch const & d) const88633   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88634   {
88635     return static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDebugUtilsMessengerEXT *>( pMessenger ) ) );
88636   }
88637 
88638 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88639   template <typename Dispatch>
createDebugUtilsMessengerEXT(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88640   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88641   {
88642     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
88643     Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) );
88644     return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" );
88645   }
88646 
88647 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88648   template <typename Dispatch>
createDebugUtilsMessengerEXTUnique(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88649   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88650   {
88651     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
88652     Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) );
88653     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88654     return createResultValue<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXTUnique", deleter );
88655   }
88656 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88657 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88658 
88659 
88660 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
88661   template <typename Dispatch>
createDirectFBSurfaceEXT(const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88662   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88663   {
88664     return static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88665   }
88666 
88667 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88668   template <typename Dispatch>
createDirectFBSurfaceEXT(const DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88669   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createDirectFBSurfaceEXT( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88670   {
88671     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88672     Result result = static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88673     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" );
88674   }
88675 
88676 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88677   template <typename Dispatch>
createDirectFBSurfaceEXTUnique(const DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88678   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88679   {
88680     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88681     Result result = static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88682     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88683     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXTUnique", deleter );
88684   }
88685 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88686 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88687 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
88688 
88689 
88690   template <typename Dispatch>
createDisplayPlaneSurfaceKHR(const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88691   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88692   {
88693     return static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88694   }
88695 
88696 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88697   template <typename Dispatch>
createDisplayPlaneSurfaceKHR(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88698   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88699   {
88700     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88701     Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88702     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" );
88703   }
88704 
88705 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88706   template <typename Dispatch>
createDisplayPlaneSurfaceKHRUnique(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88707   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88708   {
88709     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88710     Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88711     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88712     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHRUnique", deleter );
88713   }
88714 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88715 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88716 
88717 
88718   template <typename Dispatch>
createHeadlessSurfaceEXT(const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88719   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88720   {
88721     return static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88722   }
88723 
88724 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88725   template <typename Dispatch>
createHeadlessSurfaceEXT(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88726   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88727   {
88728     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88729     Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88730     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" );
88731   }
88732 
88733 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88734   template <typename Dispatch>
createHeadlessSurfaceEXTUnique(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88735   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88736   {
88737     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88738     Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88739     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88740     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXTUnique", deleter );
88741   }
88742 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88743 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88744 
88745 
88746 #ifdef VK_USE_PLATFORM_IOS_MVK
88747   template <typename Dispatch>
createIOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88748   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88749   {
88750     return static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88751   }
88752 
88753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88754   template <typename Dispatch>
createIOSSurfaceMVK(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88755   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88756   {
88757     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88758     Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88759     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" );
88760   }
88761 
88762 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88763   template <typename Dispatch>
createIOSSurfaceMVKUnique(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88764   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88765   {
88766     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88767     Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88768     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88769     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVKUnique", deleter );
88770   }
88771 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88772 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88773 #endif /*VK_USE_PLATFORM_IOS_MVK*/
88774 
88775 
88776 #ifdef VK_USE_PLATFORM_FUCHSIA
88777   template <typename Dispatch>
createImagePipeSurfaceFUCHSIA(const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88778   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88779   {
88780     return static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88781   }
88782 
88783 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88784   template <typename Dispatch>
createImagePipeSurfaceFUCHSIA(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88785   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88786   {
88787     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88788     Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88789     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" );
88790   }
88791 
88792 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88793   template <typename Dispatch>
createImagePipeSurfaceFUCHSIAUnique(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88794   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88795   {
88796     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88797     Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88798     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88799     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter );
88800   }
88801 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88802 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88803 #endif /*VK_USE_PLATFORM_FUCHSIA*/
88804 
88805 
88806 #ifdef VK_USE_PLATFORM_MACOS_MVK
88807   template <typename Dispatch>
createMacOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88808   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88809   {
88810     return static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88811   }
88812 
88813 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88814   template <typename Dispatch>
createMacOSSurfaceMVK(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88815   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88816   {
88817     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88818     Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88819     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" );
88820   }
88821 
88822 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88823   template <typename Dispatch>
createMacOSSurfaceMVKUnique(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88824   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88825   {
88826     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88827     Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88828     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88829     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVKUnique", deleter );
88830   }
88831 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88832 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88833 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
88834 
88835 
88836 #ifdef VK_USE_PLATFORM_METAL_EXT
88837   template <typename Dispatch>
createMetalSurfaceEXT(const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88838   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88839   {
88840     return static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88841   }
88842 
88843 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88844   template <typename Dispatch>
createMetalSurfaceEXT(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88845   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88846   {
88847     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88848     Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88849     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" );
88850   }
88851 
88852 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88853   template <typename Dispatch>
createMetalSurfaceEXTUnique(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88854   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88855   {
88856     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88857     Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88858     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88859     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXTUnique", deleter );
88860   }
88861 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88862 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88863 #endif /*VK_USE_PLATFORM_METAL_EXT*/
88864 
88865 
88866 #ifdef VK_USE_PLATFORM_GGP
88867   template <typename Dispatch>
createStreamDescriptorSurfaceGGP(const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88868   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88869   {
88870     return static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88871   }
88872 
88873 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88874   template <typename Dispatch>
createStreamDescriptorSurfaceGGP(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88875   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88876   {
88877     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88878     Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88879     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" );
88880   }
88881 
88882 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88883   template <typename Dispatch>
createStreamDescriptorSurfaceGGPUnique(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88884   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88885   {
88886     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88887     Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88888     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88889     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGPUnique", deleter );
88890   }
88891 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88892 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88893 #endif /*VK_USE_PLATFORM_GGP*/
88894 
88895 
88896 #ifdef VK_USE_PLATFORM_VI_NN
88897   template <typename Dispatch>
createViSurfaceNN(const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88898   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88899   {
88900     return static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88901   }
88902 
88903 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88904   template <typename Dispatch>
createViSurfaceNN(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88905   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88906   {
88907     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88908     Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88909     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNN" );
88910   }
88911 
88912 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88913   template <typename Dispatch>
createViSurfaceNNUnique(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88914   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88915   {
88916     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88917     Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88918     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88919     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNNUnique", deleter );
88920   }
88921 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88922 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88923 #endif /*VK_USE_PLATFORM_VI_NN*/
88924 
88925 
88926 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
88927   template <typename Dispatch>
createWaylandSurfaceKHR(const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88928   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88929   {
88930     return static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88931   }
88932 
88933 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88934   template <typename Dispatch>
createWaylandSurfaceKHR(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88935   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88936   {
88937     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88938     Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88939     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" );
88940   }
88941 
88942 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88943   template <typename Dispatch>
createWaylandSurfaceKHRUnique(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88944   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88945   {
88946     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88947     Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88948     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88949     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHRUnique", deleter );
88950   }
88951 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88952 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88953 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
88954 
88955 
88956 #ifdef VK_USE_PLATFORM_WIN32_KHR
88957   template <typename Dispatch>
createWin32SurfaceKHR(const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88958   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88959   {
88960     return static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88961   }
88962 
88963 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88964   template <typename Dispatch>
createWin32SurfaceKHR(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88965   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88966   {
88967     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88968     Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88969     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" );
88970   }
88971 
88972 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
88973   template <typename Dispatch>
createWin32SurfaceKHRUnique(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88974   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88975   {
88976     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88977     Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88978     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
88979     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHRUnique", deleter );
88980   }
88981 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
88982 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
88983 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
88984 
88985 
88986 #ifdef VK_USE_PLATFORM_XCB_KHR
88987   template <typename Dispatch>
createXcbSurfaceKHR(const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const88988   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
88989   {
88990     return static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
88991   }
88992 
88993 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
88994   template <typename Dispatch>
createXcbSurfaceKHR(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const88995   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
88996   {
88997     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
88998     Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
88999     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" );
89000   }
89001 
89002 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89003   template <typename Dispatch>
createXcbSurfaceKHRUnique(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89004   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89005   {
89006     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89007     Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89008     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89009     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHRUnique", deleter );
89010   }
89011 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89012 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89013 #endif /*VK_USE_PLATFORM_XCB_KHR*/
89014 
89015 
89016 #ifdef VK_USE_PLATFORM_XLIB_KHR
89017   template <typename Dispatch>
createXlibSurfaceKHR(const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const89018   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89019   {
89020     return static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) );
89021   }
89022 
89023 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89024   template <typename Dispatch>
createXlibSurfaceKHR(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89025   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type Instance::createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89026   {
89027     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89028     Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89029     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" );
89030   }
89031 
89032 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89033   template <typename Dispatch>
createXlibSurfaceKHRUnique(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89034   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89035   {
89036     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
89037     Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
89038     ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
89039     return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHRUnique", deleter );
89040   }
89041 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89042 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89043 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
89044 
89045 
89046   template <typename Dispatch>
debugReportMessageEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags,VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage,Dispatch const & d) const89047   VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89048   {
89049     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, pLayerPrefix, pMessage );
89050   }
89051 
89052 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89053   template <typename Dispatch>
debugReportMessageEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags,VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const std::string & layerPrefix,const std::string & message,Dispatch const & d) const89054   VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89055   {
89056     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() );
89057   }
89058 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89059 
89060 
89061   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89062   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89063   {
89064     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89065   }
89066 
89067 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89068   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89069   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89070   {
89071     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89072   }
89073 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89074 
89075 
89076   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89077   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89078   {
89079     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89080   }
89081 
89082 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89083   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89084   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89085   {
89086     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89087   }
89088 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89089 
89090 
89091   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89092   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89093   {
89094     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89095   }
89096 
89097 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89098   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89099   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89100   {
89101     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89102   }
89103 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89104 
89105 
89106   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89107   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89108   {
89109     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89110   }
89111 
89112 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89113   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89114   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89115   {
89116     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89117   }
89118 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89119 
89120 
89121   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89122   VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89123   {
89124     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89125   }
89126 
89127 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89128   template <typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89129   VULKAN_HPP_INLINE void Instance::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89130   {
89131     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89132   }
89133 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89134 
89135 
89136   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89137   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89138   {
89139     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89140   }
89141 
89142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89143   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89144   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89145   {
89146     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89147   }
89148 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89149 
89150 
89151   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const89152   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89153   {
89154     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
89155   }
89156 
89157 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89158   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89159   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89160   {
89161     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ) );
89162   }
89163 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89164 
89165 
89166   template <typename Dispatch>
enumeratePhysicalDeviceGroups(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const89167   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89168   {
89169     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast< VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) );
89170   }
89171 
89172 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89173   template <typename PhysicalDeviceGroupPropertiesAllocator, typename Dispatch>
enumeratePhysicalDeviceGroups(Dispatch const & d) const89174   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type Instance::enumeratePhysicalDeviceGroups( Dispatch const & d ) const
89175   {
89176     std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
89177     uint32_t physicalDeviceGroupCount;
89178     Result result;
89179     do
89180     {
89181       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
89182       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
89183       {
89184         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89185         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
89186         VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
89187       }
89188     } while ( result == Result::eIncomplete );
89189     if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) )
89190     {
89191       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89192     }
89193     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
89194   }
89195 
89196   template <typename PhysicalDeviceGroupPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type >
enumeratePhysicalDeviceGroups(PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator,Dispatch const & d) const89197   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type Instance::enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
89198   {
89199     std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties( physicalDeviceGroupPropertiesAllocator );
89200     uint32_t physicalDeviceGroupCount;
89201     Result result;
89202     do
89203     {
89204       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
89205       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
89206       {
89207         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89208         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
89209         VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
89210       }
89211     } while ( result == Result::eIncomplete );
89212     if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) )
89213     {
89214       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89215     }
89216     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
89217   }
89218 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89219 
89220   template <typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const89221   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89222   {
89223     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast< VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) );
89224   }
89225 
89226 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89227   template <typename PhysicalDeviceGroupPropertiesAllocator, typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(Dispatch const & d) const89228   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR( Dispatch const & d ) const
89229   {
89230     std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
89231     uint32_t physicalDeviceGroupCount;
89232     Result result;
89233     do
89234     {
89235       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
89236       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
89237       {
89238         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89239         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
89240         VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
89241       }
89242     } while ( result == Result::eIncomplete );
89243     if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) )
89244     {
89245       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89246     }
89247     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
89248   }
89249 
89250   template <typename PhysicalDeviceGroupPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceGroupProperties>::value, int>::type >
enumeratePhysicalDeviceGroupsKHR(PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator,Dispatch const & d) const89251   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
89252   {
89253     std::vector<PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties( physicalDeviceGroupPropertiesAllocator );
89254     uint32_t physicalDeviceGroupCount;
89255     Result result;
89256     do
89257     {
89258       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
89259       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
89260       {
89261         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89262         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
89263         VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
89264       }
89265     } while ( result == Result::eIncomplete );
89266     if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) )
89267     {
89268       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
89269     }
89270     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
89271   }
89272 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89273 
89274 
89275   template <typename Dispatch>
enumeratePhysicalDevices(uint32_t * pPhysicalDeviceCount,VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices,Dispatch const & d) const89276   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89277   {
89278     return static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast< VkPhysicalDevice *>( pPhysicalDevices ) ) );
89279   }
89280 
89281 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89282   template <typename PhysicalDeviceAllocator, typename Dispatch>
enumeratePhysicalDevices(Dispatch const & d) const89283   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type Instance::enumeratePhysicalDevices( Dispatch const & d ) const
89284   {
89285     std::vector<PhysicalDevice, PhysicalDeviceAllocator> physicalDevices;
89286     uint32_t physicalDeviceCount;
89287     Result result;
89288     do
89289     {
89290       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
89291       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
89292       {
89293         physicalDevices.resize( physicalDeviceCount );
89294         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) );
89295         VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
89296       }
89297     } while ( result == Result::eIncomplete );
89298     if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) )
89299     {
89300       physicalDevices.resize( physicalDeviceCount );
89301     }
89302     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
89303   }
89304 
89305   template <typename PhysicalDeviceAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDevice>::value, int>::type >
enumeratePhysicalDevices(PhysicalDeviceAllocator & physicalDeviceAllocator,Dispatch const & d) const89306   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice, PhysicalDeviceAllocator>>::type Instance::enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d ) const
89307   {
89308     std::vector<PhysicalDevice, PhysicalDeviceAllocator> physicalDevices( physicalDeviceAllocator );
89309     uint32_t physicalDeviceCount;
89310     Result result;
89311     do
89312     {
89313       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
89314       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
89315       {
89316         physicalDevices.resize( physicalDeviceCount );
89317         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) );
89318         VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
89319       }
89320     } while ( result == Result::eIncomplete );
89321     if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) )
89322     {
89323       physicalDevices.resize( physicalDeviceCount );
89324     }
89325     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
89326   }
89327 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89328 
89329 
89330   template <typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const89331   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89332   {
89333     return d.vkGetInstanceProcAddr( m_instance, pName );
89334   }
89335 
89336 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89337   template <typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const89338   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89339   {
89340     return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
89341   }
89342 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89343 
89344 
89345   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData,Dispatch const & d) const89346   VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89347   {
89348     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( pCallbackData ) );
89349   }
89350 
89351 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89352   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const DebugUtilsMessengerCallbackDataEXT & callbackData,Dispatch const & d) const89353   VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89354   {
89355     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( &callbackData ) );
89356   }
89357 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89358 
89359 
89360 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
89361   template <typename Dispatch>
acquireXlibDisplayEXT(Display * dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89362   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89363   {
89364     return static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast<VkDisplayKHR>( display ) ) );
89365   }
89366 
89367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89368   template <typename Dispatch>
acquireXlibDisplayEXT(Display & dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89369   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
89370   {
89371     Result result = static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
89372     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" );
89373   }
89374 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89375 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
89376 
89377 
89378   template <typename Dispatch>
createDevice(const VULKAN_HPP_NAMESPACE::DeviceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Device * pDevice,Dispatch const & d) const89379   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Device* pDevice, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89380   {
89381     return static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDevice *>( pDevice ) ) );
89382   }
89383 
89384 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89385   template <typename Dispatch>
createDevice(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89386   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Device>::type PhysicalDevice::createDevice( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89387   {
89388     VULKAN_HPP_NAMESPACE::Device device;
89389     Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice *>( &device ) ) );
89390     return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDevice" );
89391   }
89392 
89393 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89394   template <typename Dispatch>
createDeviceUnique(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89395   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Device, Dispatch>>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89396   {
89397     VULKAN_HPP_NAMESPACE::Device device;
89398     Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice *>( &device ) ) );
89399     ObjectDestroy<NoParent, Dispatch> deleter( allocator, d );
89400     return createResultValue<VULKAN_HPP_NAMESPACE::Device, Dispatch>( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDeviceUnique", deleter );
89401   }
89402 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89403 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89404 
89405 
89406   template <typename Dispatch>
createDisplayModeKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DisplayModeKHR * pMode,Dispatch const & d) const89407   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DisplayModeKHR* pMode, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89408   {
89409     return static_cast<Result>( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ), reinterpret_cast< VkDisplayModeKHR *>( pMode ) ) );
89410   }
89411 
89412 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89413   template <typename Dispatch>
createDisplayModeKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayModeCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89414   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayModeKHR>::type PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89415   {
89416     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
89417     Result result = static_cast<Result>( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) );
89418     return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHR" );
89419   }
89420 
89421 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
89422   template <typename Dispatch>
createDisplayModeKHRUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const DisplayModeCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const89423   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>>::type PhysicalDevice::createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const & d ) const
89424   {
89425     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
89426     Result result = static_cast<Result>( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) );
89427     ObjectDestroy<PhysicalDevice, Dispatch> deleter( *this, allocator, d );
89428     return createResultValue<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHRUnique", deleter );
89429   }
89430 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
89431 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89432 
89433 
89434   template <typename Dispatch>
enumerateDeviceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d) const89435   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89436   {
89437     return static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast< VkExtensionProperties *>( pProperties ) ) );
89438   }
89439 
89440 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89441   template <typename ExtensionPropertiesAllocator, typename Dispatch>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d) const89442   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Dispatch const & d ) const
89443   {
89444     std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties;
89445     uint32_t propertyCount;
89446     Result result;
89447     do
89448     {
89449       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
89450       if ( ( result == Result::eSuccess ) && propertyCount )
89451       {
89452         properties.resize( propertyCount );
89453         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
89454         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89455       }
89456     } while ( result == Result::eIncomplete );
89457     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89458     {
89459       properties.resize( propertyCount );
89460     }
89461     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
89462   }
89463 
89464   template <typename ExtensionPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, ExtensionProperties>::value, int>::type >
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,ExtensionPropertiesAllocator & extensionPropertiesAllocator,Dispatch const & d) const89465   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties, ExtensionPropertiesAllocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d ) const
89466   {
89467     std::vector<ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
89468     uint32_t propertyCount;
89469     Result result;
89470     do
89471     {
89472       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
89473       if ( ( result == Result::eSuccess ) && propertyCount )
89474       {
89475         properties.resize( propertyCount );
89476         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
89477         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89478       }
89479     } while ( result == Result::eIncomplete );
89480     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89481     {
89482       properties.resize( propertyCount );
89483     }
89484     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
89485   }
89486 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89487 
89488 
89489   template <typename Dispatch>
enumerateDeviceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d) const89490   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89491   {
89492     return static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast< VkLayerProperties *>( pProperties ) ) );
89493   }
89494 
89495 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89496   template <typename LayerPropertiesAllocator, typename Dispatch>
enumerateDeviceLayerProperties(Dispatch const & d) const89497   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type PhysicalDevice::enumerateDeviceLayerProperties( Dispatch const & d ) const
89498   {
89499     std::vector<LayerProperties, LayerPropertiesAllocator> properties;
89500     uint32_t propertyCount;
89501     Result result;
89502     do
89503     {
89504       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
89505       if ( ( result == Result::eSuccess ) && propertyCount )
89506       {
89507         properties.resize( propertyCount );
89508         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
89509         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89510       }
89511     } while ( result == Result::eIncomplete );
89512     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89513     {
89514       properties.resize( propertyCount );
89515     }
89516     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
89517   }
89518 
89519   template <typename LayerPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, LayerProperties>::value, int>::type >
enumerateDeviceLayerProperties(LayerPropertiesAllocator & layerPropertiesAllocator,Dispatch const & d) const89520   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties, LayerPropertiesAllocator>>::type PhysicalDevice::enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d ) const
89521   {
89522     std::vector<LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
89523     uint32_t propertyCount;
89524     Result result;
89525     do
89526     {
89527       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
89528       if ( ( result == Result::eSuccess ) && propertyCount )
89529       {
89530         properties.resize( propertyCount );
89531         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
89532         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89533       }
89534     } while ( result == Result::eIncomplete );
89535     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89536     {
89537       properties.resize( propertyCount );
89538     }
89539     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
89540   }
89541 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89542 
89543 
89544   template <typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,uint32_t * pCounterCount,VULKAN_HPP_NAMESPACE::PerformanceCounterKHR * pCounters,VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions,Dispatch const & d) const89545   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89546   {
89547     return static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, pCounterCount, reinterpret_cast< VkPerformanceCounterKHR *>( pCounters ), reinterpret_cast< VkPerformanceCounterDescriptionKHR *>( pCounterDescriptions ) ) );
89548   }
89549 
89550 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89551   template <typename Allocator, typename Dispatch>
89552   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> const & counters,Dispatch const & d) const89553   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PerformanceCounterDescriptionKHR,Allocator>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR(  uint32_t queueFamilyIndex, ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> const &counters, Dispatch const &d  ) const
89554   {
89555         std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions;
89556     uint32_t counterCount;
89557     Result result;
89558     do
89559     {
89560       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
89561       if ( ( result == Result::eSuccess ) && counterCount )
89562       {
89563         counterDescriptions.resize( counterCount );
89564         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
89565       }
89566     } while ( result == Result::eIncomplete );
89567     if ( result == Result::eSuccess )
89568     {
89569       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
89570       counterDescriptions.resize( counterCount );
89571     }
89572     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
89573 
89574   }
89575 
89576   template <typename Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PerformanceCounterDescriptionKHR>::value, int>::type>
89577   VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.")
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> const & counters,Allocator const & vectorAllocator,Dispatch const & d) const89578   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PerformanceCounterDescriptionKHR,Allocator>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR(  uint32_t queueFamilyIndex, ArrayProxy<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> const &counters, Allocator const& vectorAllocator, Dispatch const &d  ) const
89579   {
89580         std::vector<PerformanceCounterDescriptionKHR,Allocator> counterDescriptions( vectorAllocator );
89581     uint32_t counterCount;
89582     Result result;
89583     do
89584     {
89585       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), nullptr ) );
89586       if ( ( result == Result::eSuccess ) && counterCount )
89587       {
89588         counterDescriptions.resize( counterCount );
89589         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast<VkPerformanceCounterKHR*>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR*>( counterDescriptions.data() ) ) );
89590       }
89591     } while ( result == Result::eIncomplete );
89592     if ( result == Result::eSuccess )
89593     {
89594       VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() );
89595       counterDescriptions.resize( counterCount );
89596     }
89597     return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
89598 
89599   }
89600 
89601   template <typename PerformanceCounterKHRAllocator, typename PerformanceCounterDescriptionKHRAllocator, typename Dispatch>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,Dispatch const & d) const89602   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, Dispatch const & d ) const
89603   {
89604     std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>> data;
89605     std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator> & counters = data.first;
89606     std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data.second;
89607     uint32_t counterCount;
89608     Result result;
89609     do
89610     {
89611       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
89612       if ( ( result == Result::eSuccess ) && counterCount )
89613       {
89614         counters.resize( counterCount );
89615         counterDescriptions.resize( counterCount );
89616         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) );
89617         VULKAN_HPP_ASSERT( counterCount <= counters.size() );
89618       }
89619     } while ( result == Result::eIncomplete );
89620     if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) )
89621     {
89622       counters.resize( counterCount );
89623       counterDescriptions.resize( counterCount );
89624     }
89625     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
89626   }
89627 
89628   template <typename PerformanceCounterKHRAllocator, typename PerformanceCounterDescriptionKHRAllocator, typename Dispatch, typename B1, typename B2, typename std::enable_if<std::is_same<typename B1::value_type, PerformanceCounterKHR>::value && std::is_same<typename B2::value_type, PerformanceCounterDescriptionKHR>::value, int>::type >
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,PerformanceCounterKHRAllocator & performanceCounterKHRAllocator,PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator,Dispatch const & d) const89629   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, Dispatch const & d ) const
89630   {
89631     std::pair<std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator>, std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>> data( std::piecewise_construct, std::forward_as_tuple( performanceCounterKHRAllocator ), std::forward_as_tuple( performanceCounterDescriptionKHRAllocator ) );
89632     std::vector<PerformanceCounterKHR, PerformanceCounterKHRAllocator> & counters = data.first;
89633     std::vector<PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data.second;
89634     uint32_t counterCount;
89635     Result result;
89636     do
89637     {
89638       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
89639       if ( ( result == Result::eSuccess ) && counterCount )
89640       {
89641         counters.resize( counterCount );
89642         counterDescriptions.resize( counterCount );
89643         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ), reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) );
89644         VULKAN_HPP_ASSERT( counterCount <= counters.size() );
89645       }
89646     } while ( result == Result::eIncomplete );
89647     if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) )
89648     {
89649       counters.resize( counterCount );
89650       counterDescriptions.resize( counterCount );
89651     }
89652     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
89653   }
89654 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89655 
89656 
89657   template <typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties,Dispatch const & d) const89658   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89659   {
89660     return static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast< VkDisplayModeProperties2KHR *>( pProperties ) ) );
89661   }
89662 
89663 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89664   template <typename DisplayModeProperties2KHRAllocator, typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89665   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
89666   {
89667     std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties;
89668     uint32_t propertyCount;
89669     Result result;
89670     do
89671     {
89672       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
89673       if ( ( result == Result::eSuccess ) && propertyCount )
89674       {
89675         properties.resize( propertyCount );
89676         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
89677         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89678       }
89679     } while ( result == Result::eIncomplete );
89680     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89681     {
89682       properties.resize( propertyCount );
89683     }
89684     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
89685   }
89686 
89687   template <typename DisplayModeProperties2KHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayModeProperties2KHR>::value, int>::type >
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator,Dispatch const & d) const89688   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, Dispatch const & d ) const
89689   {
89690     std::vector<DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties( displayModeProperties2KHRAllocator );
89691     uint32_t propertyCount;
89692     Result result;
89693     do
89694     {
89695       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
89696       if ( ( result == Result::eSuccess ) && propertyCount )
89697       {
89698         properties.resize( propertyCount );
89699         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
89700         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89701       }
89702     } while ( result == Result::eIncomplete );
89703     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89704     {
89705       properties.resize( propertyCount );
89706     }
89707     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
89708   }
89709 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89710 
89711 
89712   template <typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties,Dispatch const & d) const89713   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89714   {
89715     return static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast< VkDisplayModePropertiesKHR *>( pProperties ) ) );
89716   }
89717 
89718 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89719   template <typename DisplayModePropertiesKHRAllocator, typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const89720   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
89721   {
89722     std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties;
89723     uint32_t propertyCount;
89724     Result result;
89725     do
89726     {
89727       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
89728       if ( ( result == Result::eSuccess ) && propertyCount )
89729       {
89730         properties.resize( propertyCount );
89731         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) );
89732         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89733       }
89734     } while ( result == Result::eIncomplete );
89735     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89736     {
89737       properties.resize( propertyCount );
89738     }
89739     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
89740   }
89741 
89742   template <typename DisplayModePropertiesKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayModePropertiesKHR>::value, int>::type >
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator,Dispatch const & d) const89743   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, Dispatch const & d ) const
89744   {
89745     std::vector<DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties( displayModePropertiesKHRAllocator );
89746     uint32_t propertyCount;
89747     Result result;
89748     do
89749     {
89750       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
89751       if ( ( result == Result::eSuccess ) && propertyCount )
89752       {
89753         properties.resize( propertyCount );
89754         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) );
89755         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89756       }
89757     } while ( result == Result::eIncomplete );
89758     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89759     {
89760       properties.resize( propertyCount );
89761     }
89762     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
89763   }
89764 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89765 
89766 
89767   template <typename Dispatch>
getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR * pDisplayPlaneInfo,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities,Dispatch const & d) const89768   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89769   {
89770     return static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( pDisplayPlaneInfo ), reinterpret_cast< VkDisplayPlaneCapabilities2KHR *>( pCapabilities ) ) );
89771   }
89772 
89773 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89774   template <typename Dispatch>
getDisplayPlaneCapabilities2KHR(const DisplayPlaneInfo2KHR & displayPlaneInfo,Dispatch const & d) const89775   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR>::type PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const & d ) const
89776   {
89777     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
89778     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( &capabilities ) ) );
89779     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
89780   }
89781 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89782 
89783 
89784   template <typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities,Dispatch const & d) const89785   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89786   {
89787     return static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast< VkDisplayPlaneCapabilitiesKHR *>( pCapabilities ) ) );
89788   }
89789 
89790 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89791   template <typename Dispatch>
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,Dispatch const & d) const89792   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR>::type PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const & d ) const
89793   {
89794     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
89795     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) ) );
89796     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
89797   }
89798 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89799 
89800 
89801   template <typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,uint32_t * pDisplayCount,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays,Dispatch const & d) const89802   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89803   {
89804     return static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast< VkDisplayKHR *>( pDisplays ) ) );
89805   }
89806 
89807 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89808   template <typename DisplayKHRAllocator, typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Dispatch const & d) const89809   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR, DisplayKHRAllocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d ) const
89810   {
89811     std::vector<DisplayKHR, DisplayKHRAllocator> displays;
89812     uint32_t displayCount;
89813     Result result;
89814     do
89815     {
89816       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
89817       if ( ( result == Result::eSuccess ) && displayCount )
89818       {
89819         displays.resize( displayCount );
89820         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) );
89821         VULKAN_HPP_ASSERT( displayCount <= displays.size() );
89822       }
89823     } while ( result == Result::eIncomplete );
89824     if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) )
89825     {
89826       displays.resize( displayCount );
89827     }
89828     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
89829   }
89830 
89831   template <typename DisplayKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayKHR>::value, int>::type >
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,DisplayKHRAllocator & displayKHRAllocator,Dispatch const & d) const89832   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR, DisplayKHRAllocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d ) const
89833   {
89834     std::vector<DisplayKHR, DisplayKHRAllocator> displays( displayKHRAllocator );
89835     uint32_t displayCount;
89836     Result result;
89837     do
89838     {
89839       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
89840       if ( ( result == Result::eSuccess ) && displayCount )
89841       {
89842         displays.resize( displayCount );
89843         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) );
89844         VULKAN_HPP_ASSERT( displayCount <= displays.size() );
89845       }
89846     } while ( result == Result::eIncomplete );
89847     if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) )
89848     {
89849       displays.resize( displayCount );
89850     }
89851     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
89852   }
89853 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89854 
89855 
89856   template <typename Dispatch>
getCalibrateableTimeDomainsEXT(uint32_t * pTimeDomainCount,VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains,Dispatch const & d) const89857   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89858   {
89859     return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast< VkTimeDomainEXT *>( pTimeDomains ) ) );
89860   }
89861 
89862 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89863   template <typename TimeDomainEXTAllocator, typename Dispatch>
getCalibrateableTimeDomainsEXT(Dispatch const & d) const89864   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT, TimeDomainEXTAllocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT( Dispatch const & d ) const
89865   {
89866     std::vector<TimeDomainEXT, TimeDomainEXTAllocator> timeDomains;
89867     uint32_t timeDomainCount;
89868     Result result;
89869     do
89870     {
89871       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
89872       if ( ( result == Result::eSuccess ) && timeDomainCount )
89873       {
89874         timeDomains.resize( timeDomainCount );
89875         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT *>( timeDomains.data() ) ) );
89876         VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
89877       }
89878     } while ( result == Result::eIncomplete );
89879     if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) )
89880     {
89881       timeDomains.resize( timeDomainCount );
89882     }
89883     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
89884   }
89885 
89886   template <typename TimeDomainEXTAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, TimeDomainEXT>::value, int>::type >
getCalibrateableTimeDomainsEXT(TimeDomainEXTAllocator & timeDomainEXTAllocator,Dispatch const & d) const89887   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT, TimeDomainEXTAllocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d ) const
89888   {
89889     std::vector<TimeDomainEXT, TimeDomainEXTAllocator> timeDomains( timeDomainEXTAllocator );
89890     uint32_t timeDomainCount;
89891     Result result;
89892     do
89893     {
89894       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
89895       if ( ( result == Result::eSuccess ) && timeDomainCount )
89896       {
89897         timeDomains.resize( timeDomainCount );
89898         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT *>( timeDomains.data() ) ) );
89899         VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
89900       }
89901     } while ( result == Result::eIncomplete );
89902     if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) )
89903     {
89904       timeDomains.resize( timeDomainCount );
89905     }
89906     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
89907   }
89908 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89909 
89910 
89911   template <typename Dispatch>
getCooperativeMatrixPropertiesNV(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties,Dispatch const & d) const89912   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89913   {
89914     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast< VkCooperativeMatrixPropertiesNV *>( pProperties ) ) );
89915   }
89916 
89917 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89918   template <typename CooperativeMatrixPropertiesNVAllocator, typename Dispatch>
getCooperativeMatrixPropertiesNV(Dispatch const & d) const89919   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV( Dispatch const & d ) const
89920   {
89921     std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties;
89922     uint32_t propertyCount;
89923     Result result;
89924     do
89925     {
89926       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
89927       if ( ( result == Result::eSuccess ) && propertyCount )
89928       {
89929         properties.resize( propertyCount );
89930         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) );
89931         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89932       }
89933     } while ( result == Result::eIncomplete );
89934     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89935     {
89936       properties.resize( propertyCount );
89937     }
89938     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
89939   }
89940 
89941   template <typename CooperativeMatrixPropertiesNVAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CooperativeMatrixPropertiesNV>::value, int>::type >
getCooperativeMatrixPropertiesNV(CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator,Dispatch const & d) const89942   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d ) const
89943   {
89944     std::vector<CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties( cooperativeMatrixPropertiesNVAllocator );
89945     uint32_t propertyCount;
89946     Result result;
89947     do
89948     {
89949       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
89950       if ( ( result == Result::eSuccess ) && propertyCount )
89951       {
89952         properties.resize( propertyCount );
89953         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) );
89954         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
89955       }
89956     } while ( result == Result::eIncomplete );
89957     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
89958     {
89959       properties.resize( propertyCount );
89960     }
89961     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
89962   }
89963 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89964 
89965 
89966 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
89967   template <typename Dispatch>
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB * dfb,Dispatch const & d) const89968   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89969   {
89970     return static_cast<Bool32>( d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, dfb ) );
89971   }
89972 
89973 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89974   template <typename Dispatch>
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB & dfb,Dispatch const & d) const89975   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
89976   {
89977     return d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, &dfb );
89978   }
89979 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
89980 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
89981 
89982 
89983   template <typename Dispatch>
getDisplayPlaneProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties,Dispatch const & d) const89984   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
89985   {
89986     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPlaneProperties2KHR *>( pProperties ) ) );
89987   }
89988 
89989 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
89990   template <typename DisplayPlaneProperties2KHRAllocator, typename Dispatch>
getDisplayPlaneProperties2KHR(Dispatch const & d) const89991   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR( Dispatch const & d ) const
89992   {
89993     std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties;
89994     uint32_t propertyCount;
89995     Result result;
89996     do
89997     {
89998       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
89999       if ( ( result == Result::eSuccess ) && propertyCount )
90000       {
90001         properties.resize( propertyCount );
90002         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) );
90003         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90004       }
90005     } while ( result == Result::eIncomplete );
90006     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90007     {
90008       properties.resize( propertyCount );
90009     }
90010     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
90011   }
90012 
90013   template <typename DisplayPlaneProperties2KHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlaneProperties2KHR>::value, int>::type >
getDisplayPlaneProperties2KHR(DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator,Dispatch const & d) const90014   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d ) const
90015   {
90016     std::vector<DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties( displayPlaneProperties2KHRAllocator );
90017     uint32_t propertyCount;
90018     Result result;
90019     do
90020     {
90021       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
90022       if ( ( result == Result::eSuccess ) && propertyCount )
90023       {
90024         properties.resize( propertyCount );
90025         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) );
90026         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90027       }
90028     } while ( result == Result::eIncomplete );
90029     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90030     {
90031       properties.resize( propertyCount );
90032     }
90033     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
90034   }
90035 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90036 
90037 
90038   template <typename Dispatch>
getDisplayPlanePropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties,Dispatch const & d) const90039   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90040   {
90041     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPlanePropertiesKHR *>( pProperties ) ) );
90042   }
90043 
90044 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90045   template <typename DisplayPlanePropertiesKHRAllocator, typename Dispatch>
getDisplayPlanePropertiesKHR(Dispatch const & d) const90046   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR( Dispatch const & d ) const
90047   {
90048     std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties;
90049     uint32_t propertyCount;
90050     Result result;
90051     do
90052     {
90053       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
90054       if ( ( result == Result::eSuccess ) && propertyCount )
90055       {
90056         properties.resize( propertyCount );
90057         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) );
90058         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90059       }
90060     } while ( result == Result::eIncomplete );
90061     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90062     {
90063       properties.resize( propertyCount );
90064     }
90065     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
90066   }
90067 
90068   template <typename DisplayPlanePropertiesKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPlanePropertiesKHR>::value, int>::type >
getDisplayPlanePropertiesKHR(DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator,Dispatch const & d) const90069   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d ) const
90070   {
90071     std::vector<DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties( displayPlanePropertiesKHRAllocator );
90072     uint32_t propertyCount;
90073     Result result;
90074     do
90075     {
90076       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
90077       if ( ( result == Result::eSuccess ) && propertyCount )
90078       {
90079         properties.resize( propertyCount );
90080         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) );
90081         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90082       }
90083     } while ( result == Result::eIncomplete );
90084     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90085     {
90086       properties.resize( propertyCount );
90087     }
90088     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
90089   }
90090 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90091 
90092 
90093   template <typename Dispatch>
getDisplayProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties,Dispatch const & d) const90094   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90095   {
90096     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayProperties2KHR *>( pProperties ) ) );
90097   }
90098 
90099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90100   template <typename DisplayProperties2KHRAllocator, typename Dispatch>
getDisplayProperties2KHR(Dispatch const & d) const90101   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type PhysicalDevice::getDisplayProperties2KHR( Dispatch const & d ) const
90102   {
90103     std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties;
90104     uint32_t propertyCount;
90105     Result result;
90106     do
90107     {
90108       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
90109       if ( ( result == Result::eSuccess ) && propertyCount )
90110       {
90111         properties.resize( propertyCount );
90112         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) );
90113         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90114       }
90115     } while ( result == Result::eIncomplete );
90116     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90117     {
90118       properties.resize( propertyCount );
90119     }
90120     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
90121   }
90122 
90123   template <typename DisplayProperties2KHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayProperties2KHR>::value, int>::type >
getDisplayProperties2KHR(DisplayProperties2KHRAllocator & displayProperties2KHRAllocator,Dispatch const & d) const90124   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type PhysicalDevice::getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d ) const
90125   {
90126     std::vector<DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties( displayProperties2KHRAllocator );
90127     uint32_t propertyCount;
90128     Result result;
90129     do
90130     {
90131       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
90132       if ( ( result == Result::eSuccess ) && propertyCount )
90133       {
90134         properties.resize( propertyCount );
90135         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) );
90136         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90137       }
90138     } while ( result == Result::eIncomplete );
90139     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90140     {
90141       properties.resize( propertyCount );
90142     }
90143     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
90144   }
90145 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90146 
90147 
90148   template <typename Dispatch>
getDisplayPropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties,Dispatch const & d) const90149   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90150   {
90151     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPropertiesKHR *>( pProperties ) ) );
90152   }
90153 
90154 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90155   template <typename DisplayPropertiesKHRAllocator, typename Dispatch>
getDisplayPropertiesKHR(Dispatch const & d) const90156   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type PhysicalDevice::getDisplayPropertiesKHR( Dispatch const & d ) const
90157   {
90158     std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties;
90159     uint32_t propertyCount;
90160     Result result;
90161     do
90162     {
90163       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
90164       if ( ( result == Result::eSuccess ) && propertyCount )
90165       {
90166         properties.resize( propertyCount );
90167         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) );
90168         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90169       }
90170     } while ( result == Result::eIncomplete );
90171     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90172     {
90173       properties.resize( propertyCount );
90174     }
90175     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
90176   }
90177 
90178   template <typename DisplayPropertiesKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, DisplayPropertiesKHR>::value, int>::type >
getDisplayPropertiesKHR(DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator,Dispatch const & d) const90179   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type PhysicalDevice::getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d ) const
90180   {
90181     std::vector<DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties( displayPropertiesKHRAllocator );
90182     uint32_t propertyCount;
90183     Result result;
90184     do
90185     {
90186       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
90187       if ( ( result == Result::eSuccess ) && propertyCount )
90188       {
90189         properties.resize( propertyCount );
90190         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) );
90191         VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
90192       }
90193     } while ( result == Result::eIncomplete );
90194     if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) )
90195     {
90196       properties.resize( propertyCount );
90197     }
90198     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
90199   }
90200 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90201 
90202 
90203   template <typename Dispatch>
getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const90204   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90205   {
90206     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) );
90207   }
90208 
90209 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90210   template <typename Dispatch>
getExternalBufferProperties(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const90211   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90212   {
90213     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
90214     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) );
90215     return externalBufferProperties;
90216   }
90217 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90218 
90219   template <typename Dispatch>
getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const90220   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90221   {
90222     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) );
90223   }
90224 
90225 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90226   template <typename Dispatch>
getExternalBufferPropertiesKHR(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const90227   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90228   {
90229     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
90230     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) );
90231     return externalBufferProperties;
90232   }
90233 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90234 
90235 
90236   template <typename Dispatch>
getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const90237   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90238   {
90239     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) );
90240   }
90241 
90242 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90243   template <typename Dispatch>
getExternalFenceProperties(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const90244   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90245   {
90246     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
90247     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) );
90248     return externalFenceProperties;
90249   }
90250 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90251 
90252   template <typename Dispatch>
getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const90253   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90254   {
90255     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) );
90256   }
90257 
90258 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90259   template <typename Dispatch>
getExternalFencePropertiesKHR(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const90260   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90261   {
90262     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
90263     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) );
90264     return externalFenceProperties;
90265   }
90266 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90267 
90268 
90269   template <typename Dispatch>
getExternalImageFormatPropertiesNV(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::ImageTiling tiling,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType,VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV * pExternalImageFormatProperties,Dispatch const & d) const90270   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90271   {
90272     return static_cast<Result>( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkImageTiling>( tiling ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageCreateFlags>( flags ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ), reinterpret_cast< VkExternalImageFormatPropertiesNV *>( pExternalImageFormatProperties ) ) );
90273   }
90274 
90275 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90276   template <typename Dispatch>
getExternalImageFormatPropertiesNV(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::ImageTiling tiling,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType,Dispatch const & d) const90277   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV>::type PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const & d ) const
90278   {
90279     VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
90280     Result result = static_cast<Result>( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkImageTiling>( tiling ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageCreateFlags>( flags ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ), reinterpret_cast<VkExternalImageFormatPropertiesNV *>( &externalImageFormatProperties ) ) );
90281     return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" );
90282   }
90283 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90284 
90285 
90286   template <typename Dispatch>
getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const90287   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90288   {
90289     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) );
90290   }
90291 
90292 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90293   template <typename Dispatch>
getExternalSemaphoreProperties(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const90294   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90295   {
90296     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
90297     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) );
90298     return externalSemaphoreProperties;
90299   }
90300 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90301 
90302   template <typename Dispatch>
getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const90303   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90304   {
90305     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) );
90306   }
90307 
90308 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90309   template <typename Dispatch>
getExternalSemaphorePropertiesKHR(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const90310   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90311   {
90312     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
90313     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) );
90314     return externalSemaphoreProperties;
90315   }
90316 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90317 
90318 
90319   template <typename Dispatch>
getFeatures(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures,Dispatch const & d) const90320   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90321   {
90322     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures *>( pFeatures ) );
90323   }
90324 
90325 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90326   template <typename Dispatch>
getFeatures(Dispatch const & d) const90327   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90328   {
90329     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features;
90330     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures *>( &features ) );
90331     return features;
90332   }
90333 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90334 
90335 
90336   template <typename Dispatch>
getFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const90337   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90338   {
90339     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) );
90340   }
90341 
90342 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90343   template <typename Dispatch>
getFeatures2(Dispatch const & d) const90344   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90345   {
90346     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
90347     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
90348     return features;
90349   }
90350 
90351   template <typename X, typename Y, typename... Z, typename Dispatch>
getFeatures2(Dispatch const & d) const90352   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90353   {
90354     StructureChain<X, Y, Z...> structureChain;
90355     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
90356     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
90357     return structureChain;
90358   }
90359 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90360 
90361   template <typename Dispatch>
getFeatures2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const90362   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90363   {
90364     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) );
90365   }
90366 
90367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90368   template <typename Dispatch>
getFeatures2KHR(Dispatch const & d) const90369   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90370   {
90371     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
90372     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
90373     return features;
90374   }
90375 
90376   template <typename X, typename Y, typename... Z, typename Dispatch>
getFeatures2KHR(Dispatch const & d) const90377   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90378   {
90379     StructureChain<X, Y, Z...> structureChain;
90380     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
90381     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
90382     return structureChain;
90383   }
90384 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90385 
90386 
90387   template <typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties,Dispatch const & d) const90388   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90389   {
90390     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties *>( pFormatProperties ) );
90391   }
90392 
90393 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90394   template <typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90395   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90396   {
90397     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties;
90398     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties *>( &formatProperties ) );
90399     return formatProperties;
90400   }
90401 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90402 
90403 
90404   template <typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const90405   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90406   {
90407     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) );
90408   }
90409 
90410 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90411   template <typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90412   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90413   {
90414     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
90415     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
90416     return formatProperties;
90417   }
90418 
90419   template <typename X, typename Y, typename... Z, typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90420   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90421   {
90422     StructureChain<X, Y, Z...> structureChain;
90423     VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
90424     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
90425     return structureChain;
90426   }
90427 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90428 
90429   template <typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const90430   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90431   {
90432     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) );
90433   }
90434 
90435 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90436   template <typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90437   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90438   {
90439     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
90440     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
90441     return formatProperties;
90442   }
90443 
90444   template <typename X, typename Y, typename... Z, typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const90445   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90446   {
90447     StructureChain<X, Y, Z...> structureChain;
90448     VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
90449     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
90450     return structureChain;
90451   }
90452 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90453 
90454 
90455   template <typename Dispatch>
getFragmentShadingRatesKHR(uint32_t * pFragmentShadingRateCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates,Dispatch const & d) const90456   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90457   {
90458     return static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, pFragmentShadingRateCount, reinterpret_cast< VkPhysicalDeviceFragmentShadingRateKHR *>( pFragmentShadingRates ) ) );
90459   }
90460 
90461 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90462   template <typename PhysicalDeviceFragmentShadingRateKHRAllocator, typename Dispatch>
getFragmentShadingRatesKHR(Dispatch const & d) const90463   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type PhysicalDevice::getFragmentShadingRatesKHR( Dispatch const & d ) const
90464   {
90465     std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator> fragmentShadingRates;
90466     uint32_t fragmentShadingRateCount;
90467     Result result;
90468     do
90469     {
90470       result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
90471       if ( ( result == Result::eSuccess ) && fragmentShadingRateCount )
90472       {
90473         fragmentShadingRates.resize( fragmentShadingRateCount );
90474         result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) );
90475         VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
90476       }
90477     } while ( result == Result::eIncomplete );
90478     if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) )
90479     {
90480       fragmentShadingRates.resize( fragmentShadingRateCount );
90481     }
90482     return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" );
90483   }
90484 
90485   template <typename PhysicalDeviceFragmentShadingRateKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceFragmentShadingRateKHR>::value, int>::type >
getFragmentShadingRatesKHR(PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator,Dispatch const & d) const90486   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type PhysicalDevice::getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, Dispatch const & d ) const
90487   {
90488     std::vector<PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator> fragmentShadingRates( physicalDeviceFragmentShadingRateKHRAllocator );
90489     uint32_t fragmentShadingRateCount;
90490     Result result;
90491     do
90492     {
90493       result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
90494       if ( ( result == Result::eSuccess ) && fragmentShadingRateCount )
90495       {
90496         fragmentShadingRates.resize( fragmentShadingRateCount );
90497         result = static_cast<Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) );
90498         VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
90499       }
90500     } while ( result == Result::eIncomplete );
90501     if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) )
90502     {
90503       fragmentShadingRates.resize( fragmentShadingRateCount );
90504     }
90505     return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" );
90506   }
90507 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90508 
90509 
90510   template <typename Dispatch>
getImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::ImageTiling tiling,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,VULKAN_HPP_NAMESPACE::ImageFormatProperties * pImageFormatProperties,Dispatch const & d) const90511   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ImageFormatProperties* pImageFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90512   {
90513     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkImageTiling>( tiling ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageCreateFlags>( flags ), reinterpret_cast< VkImageFormatProperties *>( pImageFormatProperties ) ) );
90514   }
90515 
90516 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90517   template <typename Dispatch>
getImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::ImageTiling tiling,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,Dispatch const & d) const90518   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties>::type PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, Dispatch const & d ) const
90519   {
90520     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
90521     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkImageTiling>( tiling ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageCreateFlags>( flags ), reinterpret_cast<VkImageFormatProperties *>( &imageFormatProperties ) ) );
90522     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" );
90523   }
90524 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90525 
90526 
90527   template <typename Dispatch>
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const90528   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90529   {
90530     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) );
90531   }
90532 
90533 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90534   template <typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const90535   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
90536   {
90537     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
90538     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
90539     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
90540   }
90541 
90542   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const90543   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
90544   {
90545     StructureChain<X, Y, Z...> structureChain;
90546     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
90547     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
90548     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
90549   }
90550 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90551 
90552   template <typename Dispatch>
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const90553   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90554   {
90555     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) );
90556   }
90557 
90558 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90559   template <typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const90560   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
90561   {
90562     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
90563     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
90564     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
90565   }
90566 
90567   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const90568   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
90569   {
90570     StructureChain<X, Y, Z...> structureChain;
90571     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
90572     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
90573     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
90574   }
90575 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90576 
90577 
90578   template <typename Dispatch>
getMemoryProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties,Dispatch const & d) const90579   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90580   {
90581     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties *>( pMemoryProperties ) );
90582   }
90583 
90584 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90585   template <typename Dispatch>
getMemoryProperties(Dispatch const & d) const90586   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90587   {
90588     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties;
90589     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( &memoryProperties ) );
90590     return memoryProperties;
90591   }
90592 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90593 
90594 
90595   template <typename Dispatch>
getMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const90596   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90597   {
90598     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
90599   }
90600 
90601 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90602   template <typename Dispatch>
getMemoryProperties2(Dispatch const & d) const90603   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90604   {
90605     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
90606     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
90607     return memoryProperties;
90608   }
90609 
90610   template <typename X, typename Y, typename... Z, typename Dispatch>
getMemoryProperties2(Dispatch const & d) const90611   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90612   {
90613     StructureChain<X, Y, Z...> structureChain;
90614     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
90615     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
90616     return structureChain;
90617   }
90618 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90619 
90620   template <typename Dispatch>
getMemoryProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const90621   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90622   {
90623     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
90624   }
90625 
90626 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90627   template <typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const90628   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90629   {
90630     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
90631     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
90632     return memoryProperties;
90633   }
90634 
90635   template <typename X, typename Y, typename... Z, typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const90636   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90637   {
90638     StructureChain<X, Y, Z...> structureChain;
90639     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
90640     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
90641     return structureChain;
90642   }
90643 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90644 
90645 
90646   template <typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties,Dispatch const & d) const90647   VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90648   {
90649     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast< VkMultisamplePropertiesEXT *>( pMultisampleProperties ) );
90650   }
90651 
90652 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90653   template <typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,Dispatch const & d) const90654   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90655   {
90656     VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties;
90657     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT *>( &multisampleProperties ) );
90658     return multisampleProperties;
90659   }
90660 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90661 
90662 
90663   template <typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pRectCount,VULKAN_HPP_NAMESPACE::Rect2D * pRects,Dispatch const & d) const90664   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pRectCount, VULKAN_HPP_NAMESPACE::Rect2D* pRects, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90665   {
90666     return static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pRectCount, reinterpret_cast< VkRect2D *>( pRects ) ) );
90667   }
90668 
90669 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90670   template <typename Rect2DAllocator, typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const90671   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D, Rect2DAllocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
90672   {
90673     std::vector<Rect2D, Rect2DAllocator> rects;
90674     uint32_t rectCount;
90675     Result result;
90676     do
90677     {
90678       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
90679       if ( ( result == Result::eSuccess ) && rectCount )
90680       {
90681         rects.resize( rectCount );
90682         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) ) );
90683         VULKAN_HPP_ASSERT( rectCount <= rects.size() );
90684       }
90685     } while ( result == Result::eIncomplete );
90686     if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) )
90687     {
90688       rects.resize( rectCount );
90689     }
90690     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
90691   }
90692 
90693   template <typename Rect2DAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, Rect2D>::value, int>::type >
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Rect2DAllocator & rect2DAllocator,Dispatch const & d) const90694   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D, Rect2DAllocator>>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d ) const
90695   {
90696     std::vector<Rect2D, Rect2DAllocator> rects( rect2DAllocator );
90697     uint32_t rectCount;
90698     Result result;
90699     do
90700     {
90701       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
90702       if ( ( result == Result::eSuccess ) && rectCount )
90703       {
90704         rects.resize( rectCount );
90705         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) ) );
90706         VULKAN_HPP_ASSERT( rectCount <= rects.size() );
90707       }
90708     } while ( result == Result::eIncomplete );
90709     if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) )
90710     {
90711       rects.resize( rectCount );
90712     }
90713     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
90714   }
90715 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90716 
90717 
90718   template <typename Dispatch>
getProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties,Dispatch const & d) const90719   VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90720   {
90721     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties *>( pProperties ) );
90722   }
90723 
90724 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90725   template <typename Dispatch>
getProperties(Dispatch const & d) const90726   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90727   {
90728     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties;
90729     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties *>( &properties ) );
90730     return properties;
90731   }
90732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90733 
90734 
90735   template <typename Dispatch>
getProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const90736   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90737   {
90738     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) );
90739   }
90740 
90741 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90742   template <typename Dispatch>
getProperties2(Dispatch const & d) const90743   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90744   {
90745     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
90746     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
90747     return properties;
90748   }
90749 
90750   template <typename X, typename Y, typename... Z, typename Dispatch>
getProperties2(Dispatch const & d) const90751   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90752   {
90753     StructureChain<X, Y, Z...> structureChain;
90754     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
90755     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
90756     return structureChain;
90757   }
90758 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90759 
90760   template <typename Dispatch>
getProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const90761   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90762   {
90763     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) );
90764   }
90765 
90766 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90767   template <typename Dispatch>
getProperties2KHR(Dispatch const & d) const90768   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90769   {
90770     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
90771     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
90772     return properties;
90773   }
90774 
90775   template <typename X, typename Y, typename... Z, typename Dispatch>
getProperties2KHR(Dispatch const & d) const90776   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90777   {
90778     StructureChain<X, Y, Z...> structureChain;
90779     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
90780     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
90781     return structureChain;
90782   }
90783 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90784 
90785 
90786   template <typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses,Dispatch const & d) const90787   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90788   {
90789     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( pPerformanceQueryCreateInfo ), pNumPasses );
90790   }
90791 
90792 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90793   template <typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo,Dispatch const & d) const90794   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
90795   {
90796     uint32_t numPasses;
90797     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( &performanceQueryCreateInfo ), &numPasses );
90798     return numPasses;
90799   }
90800 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90801 
90802 
90803   template <typename Dispatch>
getQueueFamilyProperties(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties,Dispatch const & d) const90804   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90805   {
90806     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties *>( pQueueFamilyProperties ) );
90807   }
90808 
90809 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90810   template <typename QueueFamilyPropertiesAllocator, typename Dispatch>
getQueueFamilyProperties(Dispatch const & d) const90811   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> PhysicalDevice::getQueueFamilyProperties( Dispatch const & d ) const
90812   {
90813     std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties;
90814     uint32_t queueFamilyPropertyCount;
90815     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90816     queueFamilyProperties.resize( queueFamilyPropertyCount );
90817     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
90818     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90819     return queueFamilyProperties;
90820   }
90821 
90822   template <typename QueueFamilyPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties>::value, int>::type >
getQueueFamilyProperties(QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator,Dispatch const & d) const90823   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d ) const
90824   {
90825     std::vector<QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties( queueFamilyPropertiesAllocator );
90826     uint32_t queueFamilyPropertyCount;
90827     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90828     queueFamilyProperties.resize( queueFamilyPropertyCount );
90829     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
90830     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90831     return queueFamilyProperties;
90832   }
90833 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90834 
90835 
90836   template <typename Dispatch>
getQueueFamilyProperties2(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const90837   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90838   {
90839     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) );
90840   }
90841 
90842 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90843   template <typename QueueFamilyProperties2Allocator, typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const90844   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const
90845   {
90846     std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties;
90847     uint32_t queueFamilyPropertyCount;
90848     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90849     queueFamilyProperties.resize( queueFamilyPropertyCount );
90850     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
90851     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90852     return queueFamilyProperties;
90853   }
90854 
90855   template <typename QueueFamilyProperties2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type >
getQueueFamilyProperties2(QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,Dispatch const & d) const90856   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> PhysicalDevice::getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const
90857   {
90858     std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties( queueFamilyProperties2Allocator );
90859     uint32_t queueFamilyPropertyCount;
90860     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90861     queueFamilyProperties.resize( queueFamilyPropertyCount );
90862     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
90863     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90864     return queueFamilyProperties;
90865   }
90866 
90867   template <typename StructureChain, typename StructureChainAllocator, typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const90868   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator> PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const
90869   {
90870     uint32_t queueFamilyPropertyCount;
90871     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90872     std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount );
90873     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount );
90874     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
90875     {
90876       queueFamilyProperties[i].pNext =
90877         returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
90878     }
90879     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
90880     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90881     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
90882     {
90883       returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
90884     }
90885     return returnVector;
90886   }
90887 
90888   template <typename StructureChain, typename StructureChainAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type>
getQueueFamilyProperties2(StructureChainAllocator & structureChainAllocator,Dispatch const & d) const90889   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator> PhysicalDevice::getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const
90890   {
90891     uint32_t queueFamilyPropertyCount;
90892     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90893     std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount, structureChainAllocator );
90894     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount );
90895     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
90896     {
90897       queueFamilyProperties[i].pNext =
90898         returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
90899     }
90900     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
90901     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90902     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
90903     {
90904       returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
90905     }
90906     return returnVector;
90907   }
90908 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90909 
90910   template <typename Dispatch>
getQueueFamilyProperties2KHR(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const90911   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90912   {
90913     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) );
90914   }
90915 
90916 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90917   template <typename QueueFamilyProperties2Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const90918   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const
90919   {
90920     std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties;
90921     uint32_t queueFamilyPropertyCount;
90922     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90923     queueFamilyProperties.resize( queueFamilyPropertyCount );
90924     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
90925     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90926     return queueFamilyProperties;
90927   }
90928 
90929   template <typename QueueFamilyProperties2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, QueueFamilyProperties2>::value, int>::type >
getQueueFamilyProperties2KHR(QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,Dispatch const & d) const90930   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> PhysicalDevice::getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const
90931   {
90932     std::vector<QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties( queueFamilyProperties2Allocator );
90933     uint32_t queueFamilyPropertyCount;
90934     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90935     queueFamilyProperties.resize( queueFamilyPropertyCount );
90936     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
90937     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90938     return queueFamilyProperties;
90939   }
90940 
90941   template <typename StructureChain, typename StructureChainAllocator, typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const90942   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator> PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const
90943   {
90944     uint32_t queueFamilyPropertyCount;
90945     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90946     std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount );
90947     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount );
90948     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
90949     {
90950       queueFamilyProperties[i].pNext =
90951         returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
90952     }
90953     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
90954     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90955     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
90956     {
90957       returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
90958     }
90959     return returnVector;
90960   }
90961 
90962   template <typename StructureChain, typename StructureChainAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, StructureChain>::value, int>::type>
getQueueFamilyProperties2KHR(StructureChainAllocator & structureChainAllocator,Dispatch const & d) const90963   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator> PhysicalDevice::getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const
90964   {
90965     uint32_t queueFamilyPropertyCount;
90966     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
90967     std::vector<StructureChain, StructureChainAllocator> returnVector( queueFamilyPropertyCount, structureChainAllocator );
90968     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount );
90969     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
90970     {
90971       queueFamilyProperties[i].pNext =
90972         returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
90973     }
90974     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
90975     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
90976     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
90977     {
90978       returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
90979     }
90980     return returnVector;
90981   }
90982 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
90983 
90984 
90985   template <typename Dispatch>
getSparseImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageTiling tiling,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties * pProperties,Dispatch const & d) const90986   VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
90987   {
90988     d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties *>( pProperties ) );
90989   }
90990 
90991 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90992   template <typename SparseImageFormatPropertiesAllocator, typename Dispatch>
getSparseImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageTiling tiling,Dispatch const & d) const90993   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, Dispatch const & d ) const
90994   {
90995     std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties;
90996     uint32_t propertyCount;
90997     d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), &propertyCount, nullptr );
90998     properties.resize( propertyCount );
90999     d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties *>( properties.data() ) );
91000     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91001     return properties;
91002   }
91003 
91004   template <typename SparseImageFormatPropertiesAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageFormatProperties>::value, int>::type >
getSparseImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageTiling tiling,SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator,Dispatch const & d) const91005   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, Dispatch const & d ) const
91006   {
91007     std::vector<SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties( sparseImageFormatPropertiesAllocator );
91008     uint32_t propertyCount;
91009     d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), &propertyCount, nullptr );
91010     properties.resize( propertyCount );
91011     d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties *>( properties.data() ) );
91012     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91013     return properties;
91014   }
91015 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91016 
91017 
91018   template <typename Dispatch>
getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const91019   VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91020   {
91021     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) );
91022   }
91023 
91024 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91025   template <typename SparseImageFormatProperties2Allocator, typename Dispatch>
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const91026   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const
91027   {
91028     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
91029     uint32_t propertyCount;
91030     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
91031     properties.resize( propertyCount );
91032     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
91033     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91034     return properties;
91035   }
91036 
91037   template <typename SparseImageFormatProperties2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageFormatProperties2>::value, int>::type >
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,Dispatch const & d) const91038   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const
91039   {
91040     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( sparseImageFormatProperties2Allocator );
91041     uint32_t propertyCount;
91042     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
91043     properties.resize( propertyCount );
91044     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
91045     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91046     return properties;
91047   }
91048 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91049 
91050   template <typename Dispatch>
getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const91051   VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91052   {
91053     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) );
91054   }
91055 
91056 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91057   template <typename SparseImageFormatProperties2Allocator, typename Dispatch>
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const91058   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const
91059   {
91060     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
91061     uint32_t propertyCount;
91062     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
91063     properties.resize( propertyCount );
91064     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
91065     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91066     return properties;
91067   }
91068 
91069   template <typename SparseImageFormatProperties2Allocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SparseImageFormatProperties2>::value, int>::type >
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,Dispatch const & d) const91070   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const
91071   {
91072     std::vector<SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( sparseImageFormatProperties2Allocator );
91073     uint32_t propertyCount;
91074     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
91075     properties.resize( propertyCount );
91076     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
91077     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
91078     return properties;
91079   }
91080 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91081 
91082 
91083   template <typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(uint32_t * pCombinationCount,VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations,Dispatch const & d) const91084   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91085   {
91086     return static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast< VkFramebufferMixedSamplesCombinationNV *>( pCombinations ) ) );
91087   }
91088 
91089 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91090   template <typename FramebufferMixedSamplesCombinationNVAllocator, typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const & d) const91091   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d ) const
91092   {
91093     std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations;
91094     uint32_t combinationCount;
91095     Result result;
91096     do
91097     {
91098       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
91099       if ( ( result == Result::eSuccess ) && combinationCount )
91100       {
91101         combinations.resize( combinationCount );
91102         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) );
91103         VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
91104       }
91105     } while ( result == Result::eIncomplete );
91106     if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) )
91107     {
91108       combinations.resize( combinationCount );
91109     }
91110     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
91111   }
91112 
91113   template <typename FramebufferMixedSamplesCombinationNVAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, FramebufferMixedSamplesCombinationNV>::value, int>::type >
getSupportedFramebufferMixedSamplesCombinationsNV(FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator,Dispatch const & d) const91114   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, Dispatch const & d ) const
91115   {
91116     std::vector<FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations( framebufferMixedSamplesCombinationNVAllocator );
91117     uint32_t combinationCount;
91118     Result result;
91119     do
91120     {
91121       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
91122       if ( ( result == Result::eSuccess ) && combinationCount )
91123       {
91124         combinations.resize( combinationCount );
91125         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) );
91126         VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
91127       }
91128     } while ( result == Result::eIncomplete );
91129     if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) )
91130     {
91131       combinations.resize( combinationCount );
91132     }
91133     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
91134   }
91135 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91136 
91137 
91138   template <typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities,Dispatch const & d) const91139   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91140   {
91141     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkSurfaceCapabilities2EXT *>( pSurfaceCapabilities ) ) );
91142   }
91143 
91144 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91145   template <typename Dispatch>
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91146   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT>::type PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
91147   {
91148     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
91149     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) ) );
91150     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" );
91151   }
91152 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91153 
91154 
91155   template <typename Dispatch>
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR * pSurfaceCapabilities,Dispatch const & d) const91156   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91157   {
91158     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), reinterpret_cast< VkSurfaceCapabilities2KHR *>( pSurfaceCapabilities ) ) );
91159   }
91160 
91161 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91162   template <typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const91163   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
91164   {
91165     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
91166     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
91167     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
91168   }
91169 
91170   template <typename X, typename Y, typename... Z, typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const91171   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
91172   {
91173     StructureChain<X, Y, Z...> structureChain;
91174     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
91175     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
91176     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
91177   }
91178 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91179 
91180 
91181   template <typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities,Dispatch const & d) const91182   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91183   {
91184     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkSurfaceCapabilitiesKHR *>( pSurfaceCapabilities ) ) );
91185   }
91186 
91187 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91188   template <typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91189   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR>::type PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
91190   {
91191     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
91192     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) ) );
91193     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" );
91194   }
91195 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91196 
91197 
91198   template <typename Dispatch>
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats,Dispatch const & d) const91199   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91200   {
91201     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast< VkSurfaceFormat2KHR *>( pSurfaceFormats ) ) );
91202   }
91203 
91204 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91205   template <typename SurfaceFormat2KHRAllocator, typename Dispatch>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const91206   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
91207   {
91208     std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats;
91209     uint32_t surfaceFormatCount;
91210     Result result;
91211     do
91212     {
91213       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
91214       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
91215       {
91216         surfaceFormats.resize( surfaceFormatCount );
91217         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
91218         VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
91219       }
91220     } while ( result == Result::eIncomplete );
91221     if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) )
91222     {
91223       surfaceFormats.resize( surfaceFormatCount );
91224     }
91225     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
91226   }
91227 
91228   template <typename SurfaceFormat2KHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormat2KHR>::value, int>::type >
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator,Dispatch const & d) const91229   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, Dispatch const & d ) const
91230   {
91231     std::vector<SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats( surfaceFormat2KHRAllocator );
91232     uint32_t surfaceFormatCount;
91233     Result result;
91234     do
91235     {
91236       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
91237       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
91238       {
91239         surfaceFormats.resize( surfaceFormatCount );
91240         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
91241         VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
91242       }
91243     } while ( result == Result::eIncomplete );
91244     if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) )
91245     {
91246       surfaceFormats.resize( surfaceFormatCount );
91247     }
91248     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
91249   }
91250 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91251 
91252 
91253   template <typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats,Dispatch const & d) const91254   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR* pSurfaceFormats, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91255   {
91256     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pSurfaceFormatCount, reinterpret_cast< VkSurfaceFormatKHR *>( pSurfaceFormats ) ) );
91257   }
91258 
91259 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91260   template <typename SurfaceFormatKHRAllocator, typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91261   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
91262   {
91263     std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats;
91264     uint32_t surfaceFormatCount;
91265     Result result;
91266     do
91267     {
91268       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
91269       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
91270       {
91271         surfaceFormats.resize( surfaceFormatCount );
91272         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) );
91273         VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
91274       }
91275     } while ( result == Result::eIncomplete );
91276     if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) )
91277     {
91278       surfaceFormats.resize( surfaceFormatCount );
91279     }
91280     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
91281   }
91282 
91283   template <typename SurfaceFormatKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, SurfaceFormatKHR>::value, int>::type >
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator,Dispatch const & d) const91284   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, Dispatch const & d ) const
91285   {
91286     std::vector<SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats( surfaceFormatKHRAllocator );
91287     uint32_t surfaceFormatCount;
91288     Result result;
91289     do
91290     {
91291       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
91292       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
91293       {
91294         surfaceFormats.resize( surfaceFormatCount );
91295         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) );
91296         VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
91297       }
91298     } while ( result == Result::eIncomplete );
91299     if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) )
91300     {
91301       surfaceFormats.resize( surfaceFormatCount );
91302     }
91303     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
91304   }
91305 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91306 
91307 
91308 #ifdef VK_USE_PLATFORM_WIN32_KHR
91309   template <typename Dispatch>
getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const91310   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91311   {
91312     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ), pPresentModeCount, reinterpret_cast< VkPresentModeKHR *>( pPresentModes ) ) );
91313   }
91314 
91315 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91316   template <typename PresentModeKHRAllocator, typename Dispatch>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const91317   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
91318   {
91319     std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes;
91320     uint32_t presentModeCount;
91321     Result result;
91322     do
91323     {
91324       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr ) );
91325       if ( ( result == Result::eSuccess ) && presentModeCount )
91326       {
91327         presentModes.resize( presentModeCount );
91328         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
91329         VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
91330       }
91331     } while ( result == Result::eIncomplete );
91332     if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) )
91333     {
91334       presentModes.resize( presentModeCount );
91335     }
91336     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
91337   }
91338 
91339   template <typename PresentModeKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type >
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,PresentModeKHRAllocator & presentModeKHRAllocator,Dispatch const & d) const91340   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d ) const
91341   {
91342     std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
91343     uint32_t presentModeCount;
91344     Result result;
91345     do
91346     {
91347       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr ) );
91348       if ( ( result == Result::eSuccess ) && presentModeCount )
91349       {
91350         presentModes.resize( presentModeCount );
91351         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
91352         VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
91353       }
91354     } while ( result == Result::eIncomplete );
91355     if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) )
91356     {
91357       presentModes.resize( presentModeCount );
91358     }
91359     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
91360   }
91361 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91362 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91363 
91364 
91365   template <typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const91366   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91367   {
91368     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pPresentModeCount, reinterpret_cast< VkPresentModeKHR *>( pPresentModes ) ) );
91369   }
91370 
91371 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91372   template <typename PresentModeKHRAllocator, typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91373   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
91374   {
91375     std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes;
91376     uint32_t presentModeCount;
91377     Result result;
91378     do
91379     {
91380       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
91381       if ( ( result == Result::eSuccess ) && presentModeCount )
91382       {
91383         presentModes.resize( presentModeCount );
91384         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
91385         VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
91386       }
91387     } while ( result == Result::eIncomplete );
91388     if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) )
91389     {
91390       presentModes.resize( presentModeCount );
91391     }
91392     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
91393   }
91394 
91395   template <typename PresentModeKHRAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PresentModeKHR>::value, int>::type >
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,PresentModeKHRAllocator & presentModeKHRAllocator,Dispatch const & d) const91396   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR, PresentModeKHRAllocator>>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d ) const
91397   {
91398     std::vector<PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
91399     uint32_t presentModeCount;
91400     Result result;
91401     do
91402     {
91403       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
91404       if ( ( result == Result::eSuccess ) && presentModeCount )
91405       {
91406         presentModes.resize( presentModeCount );
91407         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
91408         VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
91409       }
91410     } while ( result == Result::eIncomplete );
91411     if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) )
91412     {
91413       presentModes.resize( presentModeCount );
91414     }
91415     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
91416   }
91417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91418 
91419 
91420   template <typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::Bool32 * pSupported,Dispatch const & d) const91421   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::Bool32* pSupported, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91422   {
91423     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast< VkBool32 *>( pSupported ) ) );
91424   }
91425 
91426 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91427   template <typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const91428   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Bool32>::type PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
91429   {
91430     VULKAN_HPP_NAMESPACE::Bool32 supported;
91431     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32 *>( &supported ) ) );
91432     return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" );
91433   }
91434 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91435 
91436 
91437   template <typename Dispatch>
getToolPropertiesEXT(uint32_t * pToolCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT * pToolProperties,Dispatch const & d) const91438   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91439   {
91440     return static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, pToolCount, reinterpret_cast< VkPhysicalDeviceToolPropertiesEXT *>( pToolProperties ) ) );
91441   }
91442 
91443 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91444   template <typename PhysicalDeviceToolPropertiesEXTAllocator, typename Dispatch>
getToolPropertiesEXT(Dispatch const & d) const91445   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator>>::type PhysicalDevice::getToolPropertiesEXT( Dispatch const & d ) const
91446   {
91447     std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator> toolProperties;
91448     uint32_t toolCount;
91449     Result result;
91450     do
91451     {
91452       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
91453       if ( ( result == Result::eSuccess ) && toolCount )
91454       {
91455         toolProperties.resize( toolCount );
91456         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT *>( toolProperties.data() ) ) );
91457         VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
91458       }
91459     } while ( result == Result::eIncomplete );
91460     if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) )
91461     {
91462       toolProperties.resize( toolCount );
91463     }
91464     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
91465   }
91466 
91467   template <typename PhysicalDeviceToolPropertiesEXTAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, PhysicalDeviceToolPropertiesEXT>::value, int>::type >
getToolPropertiesEXT(PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator,Dispatch const & d) const91468   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator>>::type PhysicalDevice::getToolPropertiesEXT( PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d ) const
91469   {
91470     std::vector<PhysicalDeviceToolPropertiesEXT, PhysicalDeviceToolPropertiesEXTAllocator> toolProperties( physicalDeviceToolPropertiesEXTAllocator );
91471     uint32_t toolCount;
91472     Result result;
91473     do
91474     {
91475       result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
91476       if ( ( result == Result::eSuccess ) && toolCount )
91477       {
91478         toolProperties.resize( toolCount );
91479         result = static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT *>( toolProperties.data() ) ) );
91480         VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
91481       }
91482     } while ( result == Result::eIncomplete );
91483     if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) )
91484     {
91485       toolProperties.resize( toolCount );
91486     }
91487     return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" );
91488   }
91489 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91490 
91491 
91492 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
91493   template <typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display * display,Dispatch const & d) const91494   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91495   {
91496     return static_cast<Bool32>( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) );
91497   }
91498 
91499 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91500   template <typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display & display,Dispatch const & d) const91501   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91502   {
91503     return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
91504   }
91505 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91506 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
91507 
91508 
91509 #ifdef VK_USE_PLATFORM_WIN32_KHR
91510   template <typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const91511   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91512   {
91513     return static_cast<Bool32>( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) );
91514   }
91515 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91516 
91517 
91518 #ifdef VK_USE_PLATFORM_XCB_KHR
91519   template <typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id,Dispatch const & d) const91520   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91521   {
91522     return static_cast<Bool32>( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) );
91523   }
91524 
91525 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91526   template <typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t & connection,xcb_visualid_t visual_id,Dispatch const & d) const91527   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91528   {
91529     return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id );
91530   }
91531 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91532 #endif /*VK_USE_PLATFORM_XCB_KHR*/
91533 
91534 
91535 #ifdef VK_USE_PLATFORM_XLIB_KHR
91536   template <typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display * dpy,VisualID visualID,Dispatch const & d) const91537   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91538   {
91539     return static_cast<Bool32>( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) );
91540   }
91541 
91542 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91543   template <typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display & dpy,VisualID visualID,Dispatch const & d) const91544   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91545   {
91546     return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
91547   }
91548 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91549 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
91550 
91551 
91552 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
91553   template <typename Dispatch>
getRandROutputDisplayEXT(Display * dpy,RROutput rrOutput,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,Dispatch const & d) const91554   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91555   {
91556     return static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast< VkDisplayKHR *>( pDisplay ) ) );
91557   }
91558 
91559 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91560   template <typename Dispatch>
getRandROutputDisplayEXT(Display & dpy,RROutput rrOutput,Dispatch const & d) const91561   VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
91562   {
91563     VULKAN_HPP_NAMESPACE::DisplayKHR display;
91564     Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
91565     return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" );
91566   }
91567 
91568 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
91569   template <typename Dispatch>
getRandROutputDisplayEXTUnique(Display & dpy,RROutput rrOutput,Dispatch const & d) const91570   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type PhysicalDevice::getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
91571   {
91572     VULKAN_HPP_NAMESPACE::DisplayKHR display;
91573     Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
91574     ObjectRelease<PhysicalDevice, Dispatch> deleter( *this, d );
91575     return createResultValue<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXTUnique", deleter );
91576   }
91577 #  endif /*VULKAN_HPP_NO_SMART_HANDLE*/
91578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91579 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
91580 
91581 
91582 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
91583   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const91584   VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91585   {
91586     return static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
91587   }
91588 #else
91589   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const91590   VULKAN_HPP_INLINE typename ResultValueType<void>::type PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
91591   {
91592     Result result = static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
91593     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::releaseDisplayEXT" );
91594   }
91595 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91596 
91597 
91598 
91599   template <typename Dispatch>
getCheckpointDataNV(uint32_t * pCheckpointDataCount,VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData,Dispatch const & d) const91600   VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91601   {
91602     d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast< VkCheckpointDataNV *>( pCheckpointData ) );
91603   }
91604 
91605 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91606   template <typename CheckpointDataNVAllocator, typename Dispatch>
getCheckpointDataNV(Dispatch const & d) const91607   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator> Queue::getCheckpointDataNV( Dispatch const & d ) const
91608   {
91609     std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData;
91610     uint32_t checkpointDataCount;
91611     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
91612     checkpointData.resize( checkpointDataCount );
91613     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
91614     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
91615     return checkpointData;
91616   }
91617 
91618   template <typename CheckpointDataNVAllocator, typename Dispatch, typename B, typename std::enable_if<std::is_same<typename B::value_type, CheckpointDataNV>::value, int>::type >
getCheckpointDataNV(CheckpointDataNVAllocator & checkpointDataNVAllocator,Dispatch const & d) const91619   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<CheckpointDataNV, CheckpointDataNVAllocator> Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d ) const
91620   {
91621     std::vector<CheckpointDataNV, CheckpointDataNVAllocator> checkpointData( checkpointDataNVAllocator );
91622     uint32_t checkpointDataCount;
91623     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
91624     checkpointData.resize( checkpointDataCount );
91625     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
91626     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
91627     return checkpointData;
91628   }
91629 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91630 
91631 
91632   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const91633   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91634   {
91635     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
91636   }
91637 
91638 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91639   template <typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const91640   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91641   {
91642     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
91643   }
91644 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91645 
91646 
91647   template <typename Dispatch>
bindSparse(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindSparseInfo * pBindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const91648   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91649   {
91650     return static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast<const VkBindSparseInfo *>( pBindInfo ), static_cast<VkFence>( fence ) ) );
91651   }
91652 
91653 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91654   template <typename Dispatch>
bindSparse(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const91655   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::bindSparse( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
91656   {
91657     Result result = static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
91658     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" );
91659   }
91660 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91661 
91662 
91663   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const91664   VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91665   {
91666     d.vkQueueEndDebugUtilsLabelEXT( m_queue );
91667   }
91668 
91669 
91670   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const91671   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91672   {
91673     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
91674   }
91675 
91676 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91677   template <typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const91678   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
91679   {
91680     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
91681   }
91682 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91683 
91684 
91685   template <typename Dispatch>
presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo,Dispatch const & d) const91686   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91687   {
91688     return static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( pPresentInfo ) ) );
91689   }
91690 
91691 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91692   template <typename Dispatch>
presentKHR(const PresentInfoKHR & presentInfo,Dispatch const & d) const91693   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d ) const
91694   {
91695     Result result = static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) );
91696     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
91697   }
91698 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91699 
91700 
91701 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
91702   template <typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const91703   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91704   {
91705     return static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
91706   }
91707 #else
91708   template <typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const91709   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
91710   {
91711     Result result = static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
91712     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
91713   }
91714 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91715 
91716 
91717 
91718   template <typename Dispatch>
submit(uint32_t submitCount,const VULKAN_HPP_NAMESPACE::SubmitInfo * pSubmits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const91719   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91720   {
91721     return static_cast<Result>( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast<const VkSubmitInfo *>( pSubmits ), static_cast<VkFence>( fence ) ) );
91722   }
91723 
91724 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
91725   template <typename Dispatch>
submit(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const91726   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::submit( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
91727   {
91728     Result result = static_cast<Result>( d.vkQueueSubmit( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) ) );
91729     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" );
91730   }
91731 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91732 
91733 
91734 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
91735   template <typename Dispatch>
waitIdle(Dispatch const & d) const91736   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::waitIdle( Dispatch const & d  ) const VULKAN_HPP_NOEXCEPT
91737   {
91738     return static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
91739   }
91740 #else
91741   template <typename Dispatch>
waitIdle(Dispatch const & d) const91742   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::waitIdle( Dispatch const & d ) const
91743   {
91744     Result result = static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
91745     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
91746   }
91747 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
91748 
91749 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91750   template <> struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>{ enum { value = true }; };
91751 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91752 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91753   template <> struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>{ enum { value = true }; };
91754 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91755   template <> struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>{ enum { value = true }; };
91756   template <> struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>{ enum { value = true }; };
91757   template <> struct StructExtends<BindBufferMemoryDeviceGroupInfo, BindBufferMemoryInfo>{ enum { value = true }; };
91758   template <> struct StructExtends<BindImageMemoryDeviceGroupInfo, BindImageMemoryInfo>{ enum { value = true }; };
91759   template <> struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>{ enum { value = true }; };
91760   template <> struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>{ enum { value = true }; };
91761   template <> struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>{ enum { value = true }; };
91762   template <> struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>{ enum { value = true }; };
91763   template <> struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>{ enum { value = true }; };
91764   template <> struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>{ enum { value = true }; };
91765   template <> struct StructExtends<CopyCommandTransformInfoQCOM, BufferImageCopy2KHR>{ enum { value = true }; };
91766   template <> struct StructExtends<CopyCommandTransformInfoQCOM, ImageBlit2KHR>{ enum { value = true }; };
91767 #ifdef VK_USE_PLATFORM_WIN32_KHR
91768   template <> struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>{ enum { value = true }; };
91769 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91770   template <> struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>{ enum { value = true }; };
91771   template <> struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>{ enum { value = true }; };
91772   template <> struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>{ enum { value = true }; };
91773   template <> struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>{ enum { value = true }; };
91774   template <> struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
91775 #ifdef VK_ENABLE_BETA_EXTENSIONS
91776   template <> struct StructExtends<DeferredOperationInfoKHR, RayTracingPipelineCreateInfoKHR>{ enum { value = true }; };
91777   template <> struct StructExtends<DeferredOperationInfoKHR, AccelerationStructureBuildGeometryInfoKHR>{ enum { value = true }; };
91778   template <> struct StructExtends<DeferredOperationInfoKHR, CopyAccelerationStructureInfoKHR>{ enum { value = true }; };
91779   template <> struct StructExtends<DeferredOperationInfoKHR, CopyMemoryToAccelerationStructureInfoKHR>{ enum { value = true }; };
91780   template <> struct StructExtends<DeferredOperationInfoKHR, CopyAccelerationStructureToMemoryInfoKHR>{ enum { value = true }; };
91781 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91782   template <> struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfoEXT, DescriptorPoolCreateInfo>{ enum { value = true }; };
91783   template <> struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>{ enum { value = true }; };
91784   template <> struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>{ enum { value = true }; };
91785   template <> struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>{ enum { value = true }; };
91786   template <> struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>{ enum { value = true }; };
91787   template <> struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>{ enum { value = true }; };
91788   template <> struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>{ enum { value = true }; };
91789   template <> struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>{ enum { value = true }; };
91790   template <> struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>{ enum { value = true }; };
91791   template <> struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>{ enum { value = true }; };
91792   template <> struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>{ enum { value = true }; };
91793   template <> struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>{ enum { value = true }; };
91794   template <> struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>{ enum { value = true }; };
91795   template <> struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>{ enum { value = true }; };
91796   template <> struct StructExtends<DevicePrivateDataCreateInfoEXT, DeviceCreateInfo>{ enum { value = true }; };
91797   template <> struct StructExtends<DeviceQueueGlobalPriorityCreateInfoEXT, DeviceQueueCreateInfo>{ enum { value = true }; };
91798   template <> struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>{ enum { value = true }; };
91799   template <> struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>{ enum { value = true }; };
91800   template <> struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>{ enum { value = true }; };
91801   template <> struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>{ enum { value = true }; };
91802 #ifdef VK_USE_PLATFORM_WIN32_KHR
91803   template <> struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>{ enum { value = true }; };
91804 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91805   template <> struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
91806   template <> struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
91807 #ifdef VK_USE_PLATFORM_WIN32_KHR
91808   template <> struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
91809 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91810 #ifdef VK_USE_PLATFORM_WIN32_KHR
91811   template <> struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
91812 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91813   template <> struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>{ enum { value = true }; };
91814 #ifdef VK_USE_PLATFORM_WIN32_KHR
91815   template <> struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>{ enum { value = true }; };
91816 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91817 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91818   template <> struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>{ enum { value = true }; };
91819   template <> struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>{ enum { value = true }; };
91820 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91821   template <> struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>{ enum { value = true }; };
91822   template <> struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>{ enum { value = true }; };
91823   template <> struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>{ enum { value = true }; };
91824   template <> struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>{ enum { value = true }; };
91825   template <> struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>{ enum { value = true }; };
91826   template <> struct StructExtends<FragmentShadingRateAttachmentInfoKHR, SubpassDescription2>{ enum { value = true }; };
91827   template <> struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>{ enum { value = true }; };
91828   template <> struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
91829   template <> struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>{ enum { value = true }; };
91830   template <> struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>{ enum { value = true }; };
91831   template <> struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>{ enum { value = true }; };
91832   template <> struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>{ enum { value = true }; };
91833   template <> struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91834   template <> struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>{ enum { value = true }; };
91835   template <> struct StructExtends<ImageStencilUsageCreateInfo, ImageCreateInfo>{ enum { value = true }; };
91836   template <> struct StructExtends<ImageStencilUsageCreateInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91837   template <> struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>{ enum { value = true }; };
91838   template <> struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>{ enum { value = true }; };
91839   template <> struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>{ enum { value = true }; };
91840 #ifdef VK_USE_PLATFORM_ANDROID_KHR
91841   template <> struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>{ enum { value = true }; };
91842 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
91843   template <> struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
91844   template <> struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>{ enum { value = true }; };
91845 #ifdef VK_USE_PLATFORM_WIN32_KHR
91846   template <> struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>{ enum { value = true }; };
91847 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91848 #ifdef VK_USE_PLATFORM_WIN32_KHR
91849   template <> struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>{ enum { value = true }; };
91850 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
91851   template <> struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>{ enum { value = true }; };
91852   template <> struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
91853   template <> struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>{ enum { value = true }; };
91854   template <> struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>{ enum { value = true }; };
91855   template <> struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>{ enum { value = true }; };
91856   template <> struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>{ enum { value = true }; };
91857   template <> struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91858   template <> struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>{ enum { value = true }; };
91859   template <> struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91860   template <> struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91861   template <> struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91862   template <> struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>{ enum { value = true }; };
91863   template <> struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91864   template <> struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91865   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91866   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91867   template <> struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91868   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91869   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>{ enum { value = true }; };
91870   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91871   template <> struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91872   template <> struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>{ enum { value = true }; };
91873   template <> struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>{ enum { value = true }; };
91874   template <> struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91875   template <> struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91876   template <> struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91877   template <> struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91878   template <> struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91879   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91880   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91881   template <> struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91882   template <> struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91883   template <> struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91884   template <> struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91885   template <> struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91886   template <> struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91887   template <> struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91888   template <> struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91889   template <> struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91890   template <> struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91891   template <> struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91892   template <> struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91893   template <> struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91894   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91895   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>{ enum { value = true }; };
91896   template <> struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91897   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91898   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91899   template <> struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91900   template <> struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91901   template <> struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91902   template <> struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91903   template <> struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91904   template <> struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91905   template <> struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91906   template <> struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91907   template <> struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91908   template <> struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91909   template <> struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91910   template <> struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91911   template <> struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91912   template <> struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>{ enum { value = true }; };
91913   template <> struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91914   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91915   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91916   template <> struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91917   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91918   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91919   template <> struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91920   template <> struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91921   template <> struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91922   template <> struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91923   template <> struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91924   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91925   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91926   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91927   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91928   template <> struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91929   template <> struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91930   template <> struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91931   template <> struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>{ enum { value = true }; };
91932   template <> struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91933   template <> struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91934   template <> struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91935   template <> struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91936   template <> struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>{ enum { value = true }; };
91937   template <> struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91938   template <> struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>{ enum { value = true }; };
91939   template <> struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91940   template <> struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91941   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91942   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91943   template <> struct StructExtends<PhysicalDeviceInlineUniformBlockPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91944   template <> struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91945   template <> struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91946   template <> struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91947   template <> struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
91948   template <> struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>{ enum { value = true }; };
91949   template <> struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91950   template <> struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91951   template <> struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91952   template <> struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91953   template <> struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91954   template <> struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91955   template <> struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>{ enum { value = true }; };
91956   template <> struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>{ enum { value = true }; };
91957   template <> struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91958   template <> struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91959   template <> struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91960   template <> struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91961   template <> struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91962   template <> struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91963   template <> struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91964   template <> struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91965   template <> struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91966   template <> struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91967 #ifdef VK_ENABLE_BETA_EXTENSIONS
91968   template <> struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91969   template <> struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91970 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91971 #ifdef VK_ENABLE_BETA_EXTENSIONS
91972   template <> struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91973 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91974   template <> struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91975   template <> struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91976   template <> struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91977   template <> struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>{ enum { value = true }; };
91978   template <> struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91979   template <> struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91980 #ifdef VK_ENABLE_BETA_EXTENSIONS
91981   template <> struct StructExtends<PhysicalDeviceRayTracingFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
91982   template <> struct StructExtends<PhysicalDeviceRayTracingFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
91983 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91984 #ifdef VK_ENABLE_BETA_EXTENSIONS
91985   template <> struct StructExtends<PhysicalDeviceRayTracingPropertiesKHR, PhysicalDeviceProperties2>{ enum { value = true }; };
91986 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
91987   template <> struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
91988   template <> struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
91989   template <> struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
91990   template <> struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
91991   template <> struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
91992   template <> struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91993   template <> struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
91994   template <> struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
91995   template <> struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91996   template <> struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>{ enum { value = true }; };
91997   template <> struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
91998   template <> struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>{ enum { value = true }; };
91999   template <> struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92000   template <> struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>{ enum { value = true }; };
92001   template <> struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92002   template <> struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92003   template <> struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
92004   template <> struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>{ enum { value = true }; };
92005   template <> struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92006   template <> struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92007   template <> struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>{ enum { value = true }; };
92008   template <> struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>{ enum { value = true }; };
92009   template <> struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92010   template <> struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92011   template <> struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92012   template <> struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>{ enum { value = true }; };
92013   template <> struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
92014   template <> struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>{ enum { value = true }; };
92015   template <> struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92016   template <> struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92017   template <> struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92018   template <> struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92019   template <> struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>{ enum { value = true }; };
92020   template <> struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>{ enum { value = true }; };
92021   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92022   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92023   template <> struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
92024   template <> struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92025   template <> struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>{ enum { value = true }; };
92026   template <> struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeaturesKHR, PhysicalDeviceFeatures2>{ enum { value = true }; };
92027   template <> struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeaturesKHR, DeviceCreateInfo>{ enum { value = true }; };
92028   template <> struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>{ enum { value = true }; };
92029   template <> struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>{ enum { value = true }; };
92030   template <> struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>{ enum { value = true }; };
92031   template <> struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92032   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92033   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92034   template <> struct StructExtends<PhysicalDeviceSubgroupSizeControlPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92035   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92036   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92037   template <> struct StructExtends<PhysicalDeviceTexelBufferAlignmentPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92038   template <> struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92039   template <> struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92040   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92041   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>{ enum { value = true }; };
92042   template <> struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>{ enum { value = true }; };
92043   template <> struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92044   template <> struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92045   template <> struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92046   template <> struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92047   template <> struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>{ enum { value = true }; };
92048   template <> struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92049   template <> struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>{ enum { value = true }; };
92050   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92051   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92052   template <> struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>{ enum { value = true }; };
92053   template <> struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
92054   template <> struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>{ enum { value = true }; };
92055   template <> struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
92056   template <> struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>{ enum { value = true }; };
92057   template <> struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>{ enum { value = true }; };
92058   template <> struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>{ enum { value = true }; };
92059   template <> struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>{ enum { value = true }; };
92060   template <> struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>{ enum { value = true }; };
92061   template <> struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>{ enum { value = true }; };
92062   template <> struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>{ enum { value = true }; };
92063   template <> struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>{ enum { value = true }; };
92064   template <> struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92065   template <> struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>{ enum { value = true }; };
92066   template <> struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
92067   template <> struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
92068   template <> struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
92069   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92070   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, ComputePipelineCreateInfo>{ enum { value = true }; };
92071   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoNV>{ enum { value = true }; };
92072 #ifdef VK_ENABLE_BETA_EXTENSIONS
92073   template <> struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoKHR>{ enum { value = true }; };
92074 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92075   template <> struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92076   template <> struct StructExtends<PipelineFragmentShadingRateEnumStateCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92077   template <> struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92078   template <> struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92079   template <> struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92080   template <> struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92081   template <> struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92082   template <> struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>{ enum { value = true }; };
92083   template <> struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>{ enum { value = true }; };
92084   template <> struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>{ enum { value = true }; };
92085   template <> struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT, PipelineShaderStageCreateInfo>{ enum { value = true }; };
92086   template <> struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>{ enum { value = true }; };
92087   template <> struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>{ enum { value = true }; };
92088   template <> struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92089   template <> struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92090   template <> struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92091   template <> struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92092   template <> struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>{ enum { value = true }; };
92093 #ifdef VK_USE_PLATFORM_GGP
92094   template <> struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>{ enum { value = true }; };
92095 #endif /*VK_USE_PLATFORM_GGP*/
92096   template <> struct StructExtends<PresentRegionsKHR, PresentInfoKHR>{ enum { value = true }; };
92097   template <> struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>{ enum { value = true }; };
92098   template <> struct StructExtends<ProtectedSubmitInfo, SubmitInfo>{ enum { value = true }; };
92099   template <> struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>{ enum { value = true }; };
92100   template <> struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>{ enum { value = true }; };
92101   template <> struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>{ enum { value = true }; };
92102   template <> struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>{ enum { value = true }; };
92103   template <> struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>{ enum { value = true }; };
92104   template <> struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>{ enum { value = true }; };
92105   template <> struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>{ enum { value = true }; };
92106   template <> struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>{ enum { value = true }; };
92107   template <> struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>{ enum { value = true }; };
92108   template <> struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>{ enum { value = true }; };
92109   template <> struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>{ enum { value = true }; };
92110   template <> struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>{ enum { value = true }; };
92111   template <> struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>{ enum { value = true }; };
92112   template <> struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>{ enum { value = true }; };
92113   template <> struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>{ enum { value = true }; };
92114   template <> struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>{ enum { value = true }; };
92115   template <> struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>{ enum { value = true }; };
92116   template <> struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>{ enum { value = true }; };
92117   template <> struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>{ enum { value = true }; };
92118   template <> struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>{ enum { value = true }; };
92119   template <> struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>{ enum { value = true }; };
92120 #ifdef VK_USE_PLATFORM_WIN32_KHR
92121   template <> struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>{ enum { value = true }; };
92122 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92123 #ifdef VK_USE_PLATFORM_WIN32_KHR
92124   template <> struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>{ enum { value = true }; };
92125   template <> struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
92126 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92127 #ifdef VK_USE_PLATFORM_WIN32_KHR
92128   template <> struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>{ enum { value = true }; };
92129   template <> struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
92130 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92131   template <> struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>{ enum { value = true }; };
92132   template <> struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>{ enum { value = true }; };
92133   template <> struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>{ enum { value = true }; };
92134   template <> struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>{ enum { value = true }; };
92135   template <> struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>{ enum { value = true }; };
92136   template <> struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>{ enum { value = true }; };
92137   template <> struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>{ enum { value = true }; };
92138   template <> struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>{ enum { value = true }; };
92139 #ifdef VK_USE_PLATFORM_WIN32_KHR
92140   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>{ enum { value = true }; };
92141 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92142 #ifdef VK_USE_PLATFORM_WIN32_KHR
92143   template <> struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>{ enum { value = true }; };
92144 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92145   template <> struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>{ enum { value = true }; };
92146   template <> struct StructExtends<WriteDescriptorSetInlineUniformBlockEXT, WriteDescriptorSet>{ enum { value = true }; };
92147 
92148 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
92149   class DynamicLoader
92150   {
92151   public:
92152 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
DynamicLoader(std::string const & vulkanLibraryName={} )92153     DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT
92154 #  else
92155     DynamicLoader( std::string const & vulkanLibraryName = {} )
92156 #  endif
92157     {
92158       if ( !vulkanLibraryName.empty() )
92159       {
92160 #  if defined( __unix__ ) || defined( __APPLE__ )
92161         m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
92162 #  elif defined( _WIN32 )
92163         m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
92164 #  else
92165 #    error unsupported platform
92166 #  endif
92167       }
92168       else
92169       {
92170 #  if defined( __unix__ )
92171         m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
92172         if ( m_library == nullptr )
92173         {
92174           m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL );
92175         }
92176 #  elif defined( __APPLE__ )
92177         m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
92178 #  elif defined( _WIN32 )
92179         m_library = ::LoadLibraryA( "vulkan-1.dll" );
92180 #  else
92181 #    error unsupported platform
92182 #  endif
92183       }
92184 
92185 #ifndef VULKAN_HPP_NO_EXCEPTIONS
92186       if ( m_library == nullptr )
92187       {
92188         // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function.
92189         throw std::runtime_error( "Failed to load vulkan library!" );
92190       }
92191 #endif
92192     }
92193 
92194     DynamicLoader( DynamicLoader const& ) = delete;
92195 
DynamicLoader(DynamicLoader && other)92196     DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library(other.m_library)
92197     {
92198       other.m_library = nullptr;
92199     }
92200 
92201     DynamicLoader &operator=( DynamicLoader const& ) = delete;
92202 
operator =(DynamicLoader && other)92203     DynamicLoader &operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
92204     {
92205       std::swap(m_library, other.m_library);
92206       return *this;
92207     }
92208 
~DynamicLoader()92209     ~DynamicLoader() VULKAN_HPP_NOEXCEPT
92210     {
92211       if ( m_library )
92212       {
92213 #  if defined( __unix__ ) || defined( __APPLE__ )
92214         dlclose( m_library );
92215 #  elif defined( _WIN32 )
92216         ::FreeLibrary( m_library );
92217 #  else
92218 #    error unsupported platform
92219 #  endif
92220       }
92221     }
92222 
92223     template <typename T>
getProcAddress(const char * function) const92224     T getProcAddress( const char* function ) const VULKAN_HPP_NOEXCEPT
92225     {
92226 #  if defined( __unix__ ) || defined( __APPLE__ )
92227       return (T)dlsym( m_library, function );
92228 #  elif defined( _WIN32 )
92229       return (T)::GetProcAddress( m_library, function );
92230 #  else
92231 #    error unsupported platform
92232 #  endif
92233     }
92234 
success() const92235     bool success() const VULKAN_HPP_NOEXCEPT { return m_library != nullptr; }
92236 
92237   private:
92238 #  if defined( __unix__ ) || defined( __APPLE__ )
92239     void * m_library;
92240 #  elif defined( _WIN32 )
92241     ::HINSTANCE m_library;
92242 #  else
92243 #    error unsupported platform
92244 #  endif
92245   };
92246 #endif
92247 
92248 
92249   class DispatchLoaderDynamic
92250   {
92251   public:
92252 #ifdef VK_USE_PLATFORM_WIN32_KHR
92253     PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
92254 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92255     PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
92256     PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
92257     PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
92258     PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
92259 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
92260     PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
92261 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
92262     PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
92263     PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
92264     PFN_vkAllocateMemory vkAllocateMemory = 0;
92265     PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
92266     PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
92267 #ifdef VK_ENABLE_BETA_EXTENSIONS
92268     PFN_vkBindAccelerationStructureMemoryKHR vkBindAccelerationStructureMemoryKHR = 0;
92269 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92270     PFN_vkBindBufferMemory vkBindBufferMemory = 0;
92271     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
92272     PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
92273     PFN_vkBindImageMemory vkBindImageMemory = 0;
92274     PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
92275     PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
92276 #ifdef VK_ENABLE_BETA_EXTENSIONS
92277     PFN_vkBuildAccelerationStructureKHR vkBuildAccelerationStructureKHR = 0;
92278 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92279     PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
92280     PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
92281     PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
92282     PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
92283     PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
92284     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
92285     PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
92286     PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
92287     PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
92288     PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
92289     PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
92290     PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
92291     PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
92292     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
92293     PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
92294     PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
92295     PFN_vkCmdBlitImage vkCmdBlitImage = 0;
92296     PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
92297 #ifdef VK_ENABLE_BETA_EXTENSIONS
92298     PFN_vkCmdBuildAccelerationStructureIndirectKHR vkCmdBuildAccelerationStructureIndirectKHR = 0;
92299 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92300 #ifdef VK_ENABLE_BETA_EXTENSIONS
92301     PFN_vkCmdBuildAccelerationStructureKHR vkCmdBuildAccelerationStructureKHR = 0;
92302 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92303     PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
92304     PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
92305     PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
92306     PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
92307 #ifdef VK_ENABLE_BETA_EXTENSIONS
92308     PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
92309 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92310     PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
92311 #ifdef VK_ENABLE_BETA_EXTENSIONS
92312     PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
92313 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92314     PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
92315     PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
92316     PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
92317     PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
92318     PFN_vkCmdCopyImage vkCmdCopyImage = 0;
92319     PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
92320     PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
92321     PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
92322 #ifdef VK_ENABLE_BETA_EXTENSIONS
92323     PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
92324 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92325     PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
92326     PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
92327     PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
92328     PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
92329     PFN_vkCmdDispatch vkCmdDispatch = 0;
92330     PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
92331     PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
92332     PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
92333     PFN_vkCmdDraw vkCmdDraw = 0;
92334     PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
92335     PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
92336     PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
92337     PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
92338     PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
92339     PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
92340     PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
92341     PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
92342     PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
92343     PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
92344     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
92345     PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
92346     PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
92347     PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
92348     PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
92349     PFN_vkCmdEndQuery vkCmdEndQuery = 0;
92350     PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
92351     PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
92352     PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
92353     PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
92354     PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
92355     PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
92356     PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
92357     PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
92358     PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
92359     PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
92360     PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
92361     PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
92362     PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
92363     PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
92364     PFN_vkCmdPushConstants vkCmdPushConstants = 0;
92365     PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
92366     PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
92367     PFN_vkCmdResetEvent vkCmdResetEvent = 0;
92368     PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
92369     PFN_vkCmdResolveImage vkCmdResolveImage = 0;
92370     PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
92371     PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
92372     PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
92373     PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
92374     PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
92375     PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
92376     PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
92377     PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
92378     PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
92379     PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
92380     PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
92381     PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
92382     PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
92383     PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
92384     PFN_vkCmdSetEvent vkCmdSetEvent = 0;
92385     PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
92386     PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
92387     PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
92388     PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
92389     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
92390     PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
92391     PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
92392     PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
92393     PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
92394     PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
92395     PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
92396     PFN_vkCmdSetScissor vkCmdSetScissor = 0;
92397     PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
92398     PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
92399     PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
92400     PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
92401     PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
92402     PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
92403     PFN_vkCmdSetViewport vkCmdSetViewport = 0;
92404     PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
92405     PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
92406     PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
92407 #ifdef VK_ENABLE_BETA_EXTENSIONS
92408     PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
92409 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92410 #ifdef VK_ENABLE_BETA_EXTENSIONS
92411     PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
92412 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92413     PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
92414     PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
92415     PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
92416     PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
92417 #ifdef VK_ENABLE_BETA_EXTENSIONS
92418     PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
92419 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92420     PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
92421     PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
92422     PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
92423 #ifdef VK_ENABLE_BETA_EXTENSIONS
92424     PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
92425 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92426 #ifdef VK_ENABLE_BETA_EXTENSIONS
92427     PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
92428 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92429 #ifdef VK_ENABLE_BETA_EXTENSIONS
92430     PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
92431 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92432 #ifdef VK_ENABLE_BETA_EXTENSIONS
92433     PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
92434 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92435     PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
92436 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92437     PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
92438 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92439     PFN_vkCreateBuffer vkCreateBuffer = 0;
92440     PFN_vkCreateBufferView vkCreateBufferView = 0;
92441     PFN_vkCreateCommandPool vkCreateCommandPool = 0;
92442     PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
92443     PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
92444     PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
92445 #ifdef VK_ENABLE_BETA_EXTENSIONS
92446     PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
92447 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92448     PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
92449     PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
92450     PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
92451     PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
92452     PFN_vkCreateDevice vkCreateDevice = 0;
92453 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
92454     PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
92455 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
92456     PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
92457     PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
92458     PFN_vkCreateEvent vkCreateEvent = 0;
92459     PFN_vkCreateFence vkCreateFence = 0;
92460     PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
92461     PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
92462     PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
92463 #ifdef VK_USE_PLATFORM_IOS_MVK
92464     PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
92465 #endif /*VK_USE_PLATFORM_IOS_MVK*/
92466     PFN_vkCreateImage vkCreateImage = 0;
92467 #ifdef VK_USE_PLATFORM_FUCHSIA
92468     PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
92469 #endif /*VK_USE_PLATFORM_FUCHSIA*/
92470     PFN_vkCreateImageView vkCreateImageView = 0;
92471     PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
92472     PFN_vkCreateInstance vkCreateInstance = 0;
92473 #ifdef VK_USE_PLATFORM_MACOS_MVK
92474     PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
92475 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
92476 #ifdef VK_USE_PLATFORM_METAL_EXT
92477     PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
92478 #endif /*VK_USE_PLATFORM_METAL_EXT*/
92479     PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
92480     PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
92481     PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
92482     PFN_vkCreateQueryPool vkCreateQueryPool = 0;
92483 #ifdef VK_ENABLE_BETA_EXTENSIONS
92484     PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
92485 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92486     PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
92487     PFN_vkCreateRenderPass vkCreateRenderPass = 0;
92488     PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
92489     PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
92490     PFN_vkCreateSampler vkCreateSampler = 0;
92491     PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
92492     PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
92493     PFN_vkCreateSemaphore vkCreateSemaphore = 0;
92494     PFN_vkCreateShaderModule vkCreateShaderModule = 0;
92495     PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
92496 #ifdef VK_USE_PLATFORM_GGP
92497     PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
92498 #endif /*VK_USE_PLATFORM_GGP*/
92499     PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
92500     PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
92501 #ifdef VK_USE_PLATFORM_VI_NN
92502     PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
92503 #endif /*VK_USE_PLATFORM_VI_NN*/
92504 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
92505     PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
92506 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
92507 #ifdef VK_USE_PLATFORM_WIN32_KHR
92508     PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
92509 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92510 #ifdef VK_USE_PLATFORM_XCB_KHR
92511     PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
92512 #endif /*VK_USE_PLATFORM_XCB_KHR*/
92513 #ifdef VK_USE_PLATFORM_XLIB_KHR
92514     PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
92515 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
92516     PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
92517     PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
92518     PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
92519 #ifdef VK_ENABLE_BETA_EXTENSIONS
92520     PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
92521 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92522     PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
92523 #ifdef VK_ENABLE_BETA_EXTENSIONS
92524     PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
92525 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92526     PFN_vkDestroyBuffer vkDestroyBuffer = 0;
92527     PFN_vkDestroyBufferView vkDestroyBufferView = 0;
92528     PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
92529     PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
92530     PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
92531 #ifdef VK_ENABLE_BETA_EXTENSIONS
92532     PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
92533 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92534     PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
92535     PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
92536     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
92537     PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
92538     PFN_vkDestroyDevice vkDestroyDevice = 0;
92539     PFN_vkDestroyEvent vkDestroyEvent = 0;
92540     PFN_vkDestroyFence vkDestroyFence = 0;
92541     PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
92542     PFN_vkDestroyImage vkDestroyImage = 0;
92543     PFN_vkDestroyImageView vkDestroyImageView = 0;
92544     PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
92545     PFN_vkDestroyInstance vkDestroyInstance = 0;
92546     PFN_vkDestroyPipeline vkDestroyPipeline = 0;
92547     PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
92548     PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
92549     PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
92550     PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
92551     PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
92552     PFN_vkDestroySampler vkDestroySampler = 0;
92553     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
92554     PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
92555     PFN_vkDestroySemaphore vkDestroySemaphore = 0;
92556     PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
92557     PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
92558     PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
92559     PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
92560     PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
92561     PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
92562     PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
92563     PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
92564     PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
92565     PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
92566     PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
92567     PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
92568     PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
92569     PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
92570     PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
92571     PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
92572     PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
92573     PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
92574     PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
92575     PFN_vkFreeMemory vkFreeMemory = 0;
92576 #ifdef VK_ENABLE_BETA_EXTENSIONS
92577     PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
92578 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92579     PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
92580 #ifdef VK_ENABLE_BETA_EXTENSIONS
92581     PFN_vkGetAccelerationStructureMemoryRequirementsKHR vkGetAccelerationStructureMemoryRequirementsKHR = 0;
92582 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92583     PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
92584 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92585     PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
92586 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92587     PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
92588     PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
92589     PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
92590     PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
92591     PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
92592     PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
92593     PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
92594     PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
92595     PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
92596 #ifdef VK_ENABLE_BETA_EXTENSIONS
92597     PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
92598 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92599 #ifdef VK_ENABLE_BETA_EXTENSIONS
92600     PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
92601 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92602     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
92603     PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
92604 #ifdef VK_ENABLE_BETA_EXTENSIONS
92605     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
92606 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92607     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
92608     PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
92609     PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
92610 #ifdef VK_USE_PLATFORM_WIN32_KHR
92611     PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
92612 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92613     PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
92614     PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
92615     PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
92616     PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
92617     PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
92618     PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
92619     PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
92620     PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
92621     PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
92622     PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
92623     PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
92624     PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
92625     PFN_vkGetEventStatus vkGetEventStatus = 0;
92626     PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
92627     PFN_vkGetFenceStatus vkGetFenceStatus = 0;
92628 #ifdef VK_USE_PLATFORM_WIN32_KHR
92629     PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
92630 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92631     PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
92632     PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
92633     PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
92634     PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
92635     PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
92636     PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
92637     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
92638     PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
92639     PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
92640     PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
92641     PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
92642     PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
92643 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92644     PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
92645 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92646     PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
92647     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
92648     PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
92649 #ifdef VK_USE_PLATFORM_WIN32_KHR
92650     PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
92651 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92652 #ifdef VK_USE_PLATFORM_WIN32_KHR
92653     PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
92654 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92655 #ifdef VK_USE_PLATFORM_WIN32_KHR
92656     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
92657 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92658     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
92659     PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
92660     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
92661     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
92662 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
92663     PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
92664 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
92665     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
92666     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
92667     PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
92668     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
92669     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
92670     PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
92671     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
92672     PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
92673     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
92674     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
92675     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
92676     PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
92677     PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
92678     PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
92679     PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
92680     PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
92681     PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
92682     PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
92683     PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
92684     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
92685     PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
92686     PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
92687     PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
92688     PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
92689     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
92690     PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
92691     PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
92692     PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
92693     PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
92694     PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
92695     PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
92696     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
92697     PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
92698     PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
92699     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
92700     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
92701     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
92702     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
92703     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
92704     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
92705     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
92706     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
92707 #ifdef VK_USE_PLATFORM_WIN32_KHR
92708     PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
92709 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92710     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
92711     PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
92712     PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
92713 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
92714     PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
92715 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
92716 #ifdef VK_USE_PLATFORM_WIN32_KHR
92717     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
92718 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92719 #ifdef VK_USE_PLATFORM_XCB_KHR
92720     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
92721 #endif /*VK_USE_PLATFORM_XCB_KHR*/
92722 #ifdef VK_USE_PLATFORM_XLIB_KHR
92723     PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
92724 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
92725     PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
92726     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
92727     PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
92728     PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
92729     PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
92730     PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
92731     PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
92732 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
92733     PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
92734 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
92735 #ifdef VK_ENABLE_BETA_EXTENSIONS
92736     PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
92737 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92738     PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
92739 #ifdef VK_ENABLE_BETA_EXTENSIONS
92740     PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
92741 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92742     PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
92743     PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
92744     PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
92745     PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
92746     PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
92747 #ifdef VK_USE_PLATFORM_WIN32_KHR
92748     PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
92749 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92750     PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
92751     PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
92752     PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
92753     PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
92754     PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
92755     PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
92756 #ifdef VK_USE_PLATFORM_WIN32_KHR
92757     PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
92758 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92759     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
92760 #ifdef VK_USE_PLATFORM_WIN32_KHR
92761     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
92762 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92763     PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
92764     PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
92765     PFN_vkMapMemory vkMapMemory = 0;
92766     PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
92767     PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
92768     PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
92769     PFN_vkQueueBindSparse vkQueueBindSparse = 0;
92770     PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
92771     PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
92772     PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
92773     PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
92774     PFN_vkQueueSubmit vkQueueSubmit = 0;
92775     PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
92776     PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
92777     PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
92778     PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
92779 #ifdef VK_USE_PLATFORM_WIN32_KHR
92780     PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
92781 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92782     PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
92783     PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
92784     PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
92785     PFN_vkResetCommandPool vkResetCommandPool = 0;
92786     PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
92787     PFN_vkResetEvent vkResetEvent = 0;
92788     PFN_vkResetFences vkResetFences = 0;
92789     PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
92790     PFN_vkResetQueryPool vkResetQueryPool = 0;
92791     PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
92792     PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
92793     PFN_vkSetEvent vkSetEvent = 0;
92794     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
92795     PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
92796     PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
92797     PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
92798     PFN_vkSignalSemaphore vkSignalSemaphore = 0;
92799     PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
92800     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
92801     PFN_vkTrimCommandPool vkTrimCommandPool = 0;
92802     PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
92803     PFN_vkUnmapMemory vkUnmapMemory = 0;
92804     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
92805     PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
92806     PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
92807     PFN_vkWaitForFences vkWaitForFences = 0;
92808     PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
92809     PFN_vkWaitSemaphores vkWaitSemaphores = 0;
92810 #ifdef VK_ENABLE_BETA_EXTENSIONS
92811     PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
92812 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
92813 
92814   public:
92815     DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default;
92816 
92817 #if !defined(VK_NO_PROTOTYPES)
92818     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
92819     template <typename DynamicLoader>
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device,DynamicLoader const & dl)92820     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device, DynamicLoader const& dl) VULKAN_HPP_NOEXCEPT
92821     {
92822       PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr");
92823       PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.template getProcAddress<PFN_vkGetDeviceProcAddr>("vkGetDeviceProcAddr");
92824       init(static_cast<VkInstance>(instance), getInstanceProcAddr, static_cast<VkDevice>(device), device ? getDeviceProcAddr : nullptr);
92825     }
92826 
92827     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
92828     template <typename DynamicLoader
92829 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
92830       = VULKAN_HPP_NAMESPACE::DynamicLoader
92831 #endif
92832     >
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device)92833     void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT
92834     {
92835       static DynamicLoader dl;
92836       init(instance, device, dl);
92837     }
92838 #endif // !defined(VK_NO_PROTOTYPES)
92839 
DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr)92840     DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr) VULKAN_HPP_NOEXCEPT
92841     {
92842       init(getInstanceProcAddr);
92843     }
92844 
init(PFN_vkGetInstanceProcAddr getInstanceProcAddr)92845     void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
92846     {
92847       VULKAN_HPP_ASSERT(getInstanceProcAddr);
92848 
92849       vkGetInstanceProcAddr = getInstanceProcAddr;
92850       vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
92851       vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
92852       vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
92853       vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
92854     }
92855 
92856     // This interface does not require a linked vulkan library.
DispatchLoaderDynamic(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr getDeviceProcAddr=nullptr)92857     DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
92858     {
92859       init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
92860     }
92861 
92862     // This interface does not require a linked vulkan library.
init(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr=nullptr)92863     void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT
92864     {
92865       VULKAN_HPP_ASSERT(instance && getInstanceProcAddr);
92866       vkGetInstanceProcAddr = getInstanceProcAddr;
92867       init( VULKAN_HPP_NAMESPACE::Instance(instance) );
92868       if (device) {
92869         init( VULKAN_HPP_NAMESPACE::Device(device) );
92870       }
92871     }
92872 
init(VULKAN_HPP_NAMESPACE::Instance instanceCpp)92873     void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
92874     {
92875       VkInstance instance = static_cast<VkInstance>(instanceCpp);
92876 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
92877       vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
92878 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
92879 #ifdef VK_USE_PLATFORM_ANDROID_KHR
92880       vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
92881 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
92882       vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
92883       vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
92884       vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
92885 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
92886       vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
92887 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
92888       vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
92889       vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
92890       vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
92891 #ifdef VK_USE_PLATFORM_IOS_MVK
92892       vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
92893 #endif /*VK_USE_PLATFORM_IOS_MVK*/
92894 #ifdef VK_USE_PLATFORM_FUCHSIA
92895       vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
92896 #endif /*VK_USE_PLATFORM_FUCHSIA*/
92897 #ifdef VK_USE_PLATFORM_MACOS_MVK
92898       vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
92899 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
92900 #ifdef VK_USE_PLATFORM_METAL_EXT
92901       vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
92902 #endif /*VK_USE_PLATFORM_METAL_EXT*/
92903 #ifdef VK_USE_PLATFORM_GGP
92904       vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
92905 #endif /*VK_USE_PLATFORM_GGP*/
92906 #ifdef VK_USE_PLATFORM_VI_NN
92907       vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
92908 #endif /*VK_USE_PLATFORM_VI_NN*/
92909 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
92910       vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
92911 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
92912 #ifdef VK_USE_PLATFORM_WIN32_KHR
92913       vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
92914 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92915 #ifdef VK_USE_PLATFORM_XCB_KHR
92916       vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
92917 #endif /*VK_USE_PLATFORM_XCB_KHR*/
92918 #ifdef VK_USE_PLATFORM_XLIB_KHR
92919       vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
92920 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
92921       vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
92922       vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
92923       vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
92924       vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
92925       vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
92926       vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
92927       vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
92928       vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
92929       vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
92930       if ( !vkEnumeratePhysicalDeviceGroups ) vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
92931       vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
92932       vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
92933       vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
92934       vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
92935       vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
92936       vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
92937       vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
92938       vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
92939       vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
92940       vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
92941 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
92942       vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
92943 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
92944       vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
92945       vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
92946       vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
92947       vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
92948       vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
92949       vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
92950       if ( !vkGetPhysicalDeviceExternalBufferProperties ) vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
92951       vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
92952       vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
92953       if ( !vkGetPhysicalDeviceExternalFenceProperties ) vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
92954       vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
92955       vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
92956       vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
92957       if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
92958       vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
92959       vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
92960       vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
92961       if ( !vkGetPhysicalDeviceFeatures2 ) vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
92962       vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
92963       vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
92964       vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
92965       if ( !vkGetPhysicalDeviceFormatProperties2 ) vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
92966       vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
92967       vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
92968       vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
92969       vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
92970       if ( !vkGetPhysicalDeviceImageFormatProperties2 ) vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
92971       vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
92972       vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
92973       vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
92974       if ( !vkGetPhysicalDeviceMemoryProperties2 ) vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
92975       vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
92976       vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
92977       vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
92978       vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
92979       vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
92980       if ( !vkGetPhysicalDeviceProperties2 ) vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
92981       vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
92982       vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
92983       vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
92984       vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
92985       if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
92986       vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
92987       vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
92988       vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
92989       if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
92990       vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
92991       vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
92992       vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
92993       vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
92994       vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
92995       vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
92996 #ifdef VK_USE_PLATFORM_WIN32_KHR
92997       vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
92998 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
92999       vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
93000       vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
93001       vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
93002 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
93003       vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
93004 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
93005 #ifdef VK_USE_PLATFORM_WIN32_KHR
93006       vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
93007 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93008 #ifdef VK_USE_PLATFORM_XCB_KHR
93009       vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
93010 #endif /*VK_USE_PLATFORM_XCB_KHR*/
93011 #ifdef VK_USE_PLATFORM_XLIB_KHR
93012       vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
93013 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
93014 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
93015       vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
93016 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
93017       vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
93018       vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
93019 #ifdef VK_USE_PLATFORM_WIN32_KHR
93020       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
93021 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93022       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
93023       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
93024       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
93025       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
93026       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
93027       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
93028       vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
93029       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
93030       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
93031 #ifdef VK_ENABLE_BETA_EXTENSIONS
93032       vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryKHR" ) );
93033       if ( !vkBindAccelerationStructureMemoryKHR ) vkBindAccelerationStructureMemoryKHR = vkBindAccelerationStructureMemoryNV;
93034 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93035       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
93036       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
93037       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
93038       if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR;
93039       vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
93040       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
93041       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
93042       if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR;
93043 #ifdef VK_ENABLE_BETA_EXTENSIONS
93044       vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructureKHR" ) );
93045 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93046       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
93047       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
93048       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
93049       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
93050       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
93051       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
93052       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
93053       if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
93054       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
93055       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
93056       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
93057       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
93058       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
93059       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
93060       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
93061       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
93062       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
93063       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
93064       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
93065 #ifdef VK_ENABLE_BETA_EXTENSIONS
93066       vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
93067 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93068 #ifdef VK_ENABLE_BETA_EXTENSIONS
93069       vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureKHR" ) );
93070 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93071       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
93072       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
93073       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
93074       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
93075 #ifdef VK_ENABLE_BETA_EXTENSIONS
93076       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
93077 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93078       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
93079 #ifdef VK_ENABLE_BETA_EXTENSIONS
93080       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
93081 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93082       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
93083       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
93084       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
93085       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
93086       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
93087       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
93088       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
93089       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
93090 #ifdef VK_ENABLE_BETA_EXTENSIONS
93091       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
93092 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93093       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
93094       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
93095       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
93096       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
93097       vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
93098       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
93099       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
93100       if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR;
93101       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
93102       vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
93103       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
93104       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
93105       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
93106       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
93107       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
93108       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
93109       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
93110       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
93111       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
93112       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
93113       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
93114       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
93115       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
93116       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
93117       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
93118       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
93119       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
93120       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
93121       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
93122       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
93123       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
93124       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
93125       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
93126       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
93127       if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
93128       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
93129       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
93130       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
93131       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
93132       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
93133       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
93134       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
93135       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
93136       if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
93137       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
93138       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
93139       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
93140       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
93141       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
93142       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
93143       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
93144       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
93145       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
93146       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
93147       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
93148       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
93149       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
93150       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
93151       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
93152       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
93153       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
93154       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
93155       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
93156       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
93157       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
93158       if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
93159       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
93160       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
93161       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
93162       vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) );
93163       vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) );
93164       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
93165       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
93166       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
93167       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
93168       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
93169       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
93170       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
93171       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
93172       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
93173       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
93174       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
93175       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
93176       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
93177       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
93178       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
93179       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
93180       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
93181       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
93182       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
93183 #ifdef VK_ENABLE_BETA_EXTENSIONS
93184       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
93185 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93186 #ifdef VK_ENABLE_BETA_EXTENSIONS
93187       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
93188 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93189       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
93190       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
93191       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
93192       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
93193 #ifdef VK_ENABLE_BETA_EXTENSIONS
93194       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
93195       if ( !vkCmdWriteAccelerationStructuresPropertiesKHR ) vkCmdWriteAccelerationStructuresPropertiesKHR = vkCmdWriteAccelerationStructuresPropertiesNV;
93196 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93197       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
93198       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
93199       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
93200 #ifdef VK_ENABLE_BETA_EXTENSIONS
93201       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
93202 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93203 #ifdef VK_ENABLE_BETA_EXTENSIONS
93204       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
93205 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93206 #ifdef VK_ENABLE_BETA_EXTENSIONS
93207       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
93208 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93209 #ifdef VK_ENABLE_BETA_EXTENSIONS
93210       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
93211 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93212       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
93213       vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
93214       vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
93215       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
93216       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
93217 #ifdef VK_ENABLE_BETA_EXTENSIONS
93218       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
93219 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93220       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
93221       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
93222       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
93223       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
93224       if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
93225       vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
93226       vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
93227       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
93228       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
93229       vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
93230       vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
93231       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
93232       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
93233       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
93234       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
93235       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
93236 #ifdef VK_ENABLE_BETA_EXTENSIONS
93237       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
93238 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93239       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
93240       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
93241       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
93242       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
93243       if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR;
93244       vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
93245       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
93246       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
93247       if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
93248       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
93249       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
93250       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
93251       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
93252       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
93253       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
93254       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
93255 #ifdef VK_ENABLE_BETA_EXTENSIONS
93256       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
93257 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93258       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
93259 #ifdef VK_ENABLE_BETA_EXTENSIONS
93260       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
93261       if ( !vkDestroyAccelerationStructureKHR ) vkDestroyAccelerationStructureKHR = vkDestroyAccelerationStructureNV;
93262 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93263       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
93264       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
93265       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
93266 #ifdef VK_ENABLE_BETA_EXTENSIONS
93267       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
93268 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93269       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
93270       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
93271       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
93272       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
93273       if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
93274       vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
93275       vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
93276       vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
93277       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
93278       vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
93279       vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
93280       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
93281       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
93282       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
93283       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
93284       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
93285       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
93286       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
93287       vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
93288       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
93289       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
93290       if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
93291       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
93292       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
93293       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
93294       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
93295       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
93296       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
93297       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
93298       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
93299       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
93300       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
93301       vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
93302 #ifdef VK_ENABLE_BETA_EXTENSIONS
93303       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
93304 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93305       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
93306 #ifdef VK_ENABLE_BETA_EXTENSIONS
93307       vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
93308 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93309       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
93310 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93311       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
93312 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93313       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
93314       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
93315       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
93316       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
93317       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
93318       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
93319       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
93320       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
93321       if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
93322       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
93323       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
93324       if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
93325       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
93326 #ifdef VK_ENABLE_BETA_EXTENSIONS
93327       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
93328 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93329 #ifdef VK_ENABLE_BETA_EXTENSIONS
93330       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
93331 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93332       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
93333       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
93334       if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
93335 #ifdef VK_ENABLE_BETA_EXTENSIONS
93336       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
93337 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93338       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
93339       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
93340       if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
93341       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
93342 #ifdef VK_USE_PLATFORM_WIN32_KHR
93343       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
93344 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93345       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
93346       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
93347       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
93348       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
93349       if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
93350       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
93351       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
93352       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
93353       vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
93354       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
93355       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
93356 #ifdef VK_USE_PLATFORM_WIN32_KHR
93357       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
93358 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93359       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
93360       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
93361       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
93362       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
93363       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
93364       if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
93365       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
93366       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
93367       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
93368       if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
93369       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
93370       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
93371       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
93372 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93373       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
93374 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93375       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
93376       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
93377       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
93378 #ifdef VK_USE_PLATFORM_WIN32_KHR
93379       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
93380 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93381 #ifdef VK_USE_PLATFORM_WIN32_KHR
93382       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
93383 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93384 #ifdef VK_USE_PLATFORM_WIN32_KHR
93385       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
93386 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93387       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
93388       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
93389       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
93390       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
93391       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
93392       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
93393       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
93394       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
93395       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
93396 #ifdef VK_ENABLE_BETA_EXTENSIONS
93397       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
93398 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93399       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
93400 #ifdef VK_ENABLE_BETA_EXTENSIONS
93401       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
93402       if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
93403 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93404       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
93405       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
93406       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
93407       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
93408       if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
93409       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
93410 #ifdef VK_USE_PLATFORM_WIN32_KHR
93411       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
93412 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93413       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
93414       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
93415       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
93416       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
93417       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
93418       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
93419 #ifdef VK_USE_PLATFORM_WIN32_KHR
93420       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
93421 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93422       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
93423 #ifdef VK_USE_PLATFORM_WIN32_KHR
93424       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
93425 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93426       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
93427       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
93428       vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
93429       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
93430       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
93431       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
93432       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
93433       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
93434       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
93435       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
93436       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
93437       vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
93438       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
93439       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
93440       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
93441 #ifdef VK_USE_PLATFORM_WIN32_KHR
93442       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
93443 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93444       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
93445       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
93446       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
93447       vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
93448       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
93449       vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
93450       vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
93451       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
93452       vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
93453       if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT;
93454       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
93455       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
93456       vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
93457       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
93458       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
93459       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
93460       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
93461       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
93462       if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR;
93463       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
93464       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
93465       if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR;
93466       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
93467       vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
93468       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
93469       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
93470       if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
93471       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
93472       vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
93473       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
93474       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
93475       if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR;
93476 #ifdef VK_ENABLE_BETA_EXTENSIONS
93477       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
93478 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93479     }
93480 
init(VULKAN_HPP_NAMESPACE::Device deviceCpp)93481     void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
93482     {
93483       VkDevice device = static_cast<VkDevice>(deviceCpp);
93484 #ifdef VK_USE_PLATFORM_WIN32_KHR
93485       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
93486 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93487       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
93488       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
93489       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
93490       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
93491       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
93492       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
93493       vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
93494       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
93495       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
93496 #ifdef VK_ENABLE_BETA_EXTENSIONS
93497       vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryKHR" ) );
93498       if ( !vkBindAccelerationStructureMemoryKHR ) vkBindAccelerationStructureMemoryKHR = vkBindAccelerationStructureMemoryNV;
93499 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93500       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
93501       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
93502       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
93503       if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR;
93504       vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
93505       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
93506       vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
93507       if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR;
93508 #ifdef VK_ENABLE_BETA_EXTENSIONS
93509       vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructureKHR" ) );
93510 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93511       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
93512       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
93513       vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
93514       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
93515       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
93516       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
93517       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
93518       if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
93519       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
93520       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
93521       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
93522       vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
93523       vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
93524       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
93525       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
93526       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
93527       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
93528       vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
93529       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
93530 #ifdef VK_ENABLE_BETA_EXTENSIONS
93531       vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
93532 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93533 #ifdef VK_ENABLE_BETA_EXTENSIONS
93534       vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureKHR" ) );
93535 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93536       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
93537       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
93538       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
93539       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
93540 #ifdef VK_ENABLE_BETA_EXTENSIONS
93541       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
93542 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93543       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
93544 #ifdef VK_ENABLE_BETA_EXTENSIONS
93545       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
93546 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93547       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
93548       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
93549       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
93550       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
93551       vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
93552       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
93553       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
93554       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
93555 #ifdef VK_ENABLE_BETA_EXTENSIONS
93556       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
93557 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93558       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
93559       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
93560       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
93561       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
93562       vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
93563       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
93564       vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
93565       if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR;
93566       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
93567       vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
93568       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
93569       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
93570       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
93571       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
93572       vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
93573       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
93574       if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
93575       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
93576       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
93577       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
93578       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
93579       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
93580       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
93581       if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
93582       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
93583       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
93584       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
93585       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
93586       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
93587       vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
93588       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
93589       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
93590       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
93591       vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
93592       if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
93593       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
93594       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
93595       vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
93596       vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
93597       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
93598       vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
93599       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
93600       vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
93601       if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
93602       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
93603       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
93604       vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
93605       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
93606       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
93607       vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
93608       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
93609       vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
93610       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
93611       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
93612       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
93613       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
93614       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
93615       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
93616       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
93617       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
93618       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
93619       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
93620       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
93621       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
93622       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
93623       if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
93624       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
93625       vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
93626       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
93627       vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
93628       vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
93629       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
93630       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
93631       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
93632       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
93633       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
93634       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
93635       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
93636       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
93637       vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
93638       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
93639       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
93640       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
93641       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
93642       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
93643       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
93644       vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
93645       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
93646       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
93647       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
93648 #ifdef VK_ENABLE_BETA_EXTENSIONS
93649       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
93650 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93651 #ifdef VK_ENABLE_BETA_EXTENSIONS
93652       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
93653 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93654       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
93655       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
93656       vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
93657       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
93658 #ifdef VK_ENABLE_BETA_EXTENSIONS
93659       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
93660       if ( !vkCmdWriteAccelerationStructuresPropertiesKHR ) vkCmdWriteAccelerationStructuresPropertiesKHR = vkCmdWriteAccelerationStructuresPropertiesNV;
93661 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93662       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
93663       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
93664       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
93665 #ifdef VK_ENABLE_BETA_EXTENSIONS
93666       vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
93667 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93668 #ifdef VK_ENABLE_BETA_EXTENSIONS
93669       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
93670 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93671 #ifdef VK_ENABLE_BETA_EXTENSIONS
93672       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
93673 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93674 #ifdef VK_ENABLE_BETA_EXTENSIONS
93675       vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
93676 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93677       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
93678       vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
93679       vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
93680       vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
93681       vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
93682 #ifdef VK_ENABLE_BETA_EXTENSIONS
93683       vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
93684 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93685       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
93686       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
93687       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
93688       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
93689       if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
93690       vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
93691       vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
93692       vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
93693       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
93694       vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
93695       vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
93696       vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
93697       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
93698       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
93699       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
93700       vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
93701 #ifdef VK_ENABLE_BETA_EXTENSIONS
93702       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
93703 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93704       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
93705       vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
93706       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
93707       vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
93708       if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR;
93709       vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
93710       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
93711       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
93712       if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
93713       vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
93714       vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
93715       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
93716       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
93717       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
93718       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
93719       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
93720 #ifdef VK_ENABLE_BETA_EXTENSIONS
93721       vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
93722 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93723       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
93724 #ifdef VK_ENABLE_BETA_EXTENSIONS
93725       vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
93726       if ( !vkDestroyAccelerationStructureKHR ) vkDestroyAccelerationStructureKHR = vkDestroyAccelerationStructureNV;
93727 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93728       vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
93729       vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
93730       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
93731 #ifdef VK_ENABLE_BETA_EXTENSIONS
93732       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
93733 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93734       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
93735       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
93736       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
93737       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
93738       if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
93739       vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
93740       vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
93741       vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
93742       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
93743       vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
93744       vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
93745       vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
93746       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
93747       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
93748       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
93749       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
93750       vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
93751       vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
93752       vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
93753       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
93754       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
93755       if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
93756       vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
93757       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
93758       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
93759       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
93760       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
93761       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
93762       vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
93763       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
93764       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
93765       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
93766       vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
93767 #ifdef VK_ENABLE_BETA_EXTENSIONS
93768       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
93769 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93770       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
93771 #ifdef VK_ENABLE_BETA_EXTENSIONS
93772       vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
93773 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93774       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
93775 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93776       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
93777 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93778       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
93779       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
93780       vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
93781       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
93782       if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
93783       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
93784       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
93785       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
93786       if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
93787       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
93788       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
93789       if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
93790       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
93791 #ifdef VK_ENABLE_BETA_EXTENSIONS
93792       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
93793 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93794 #ifdef VK_ENABLE_BETA_EXTENSIONS
93795       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
93796 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93797       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
93798       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
93799       if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
93800 #ifdef VK_ENABLE_BETA_EXTENSIONS
93801       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
93802 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93803       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
93804       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
93805       if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
93806       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
93807 #ifdef VK_USE_PLATFORM_WIN32_KHR
93808       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
93809 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93810       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
93811       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
93812       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
93813       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
93814       if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
93815       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
93816       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
93817       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
93818       vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
93819       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
93820       vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
93821 #ifdef VK_USE_PLATFORM_WIN32_KHR
93822       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
93823 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93824       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
93825       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
93826       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
93827       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
93828       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
93829       if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
93830       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
93831       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
93832       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
93833       if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
93834       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
93835       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
93836       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
93837 #ifdef VK_USE_PLATFORM_ANDROID_KHR
93838       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
93839 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
93840       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
93841       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
93842       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
93843 #ifdef VK_USE_PLATFORM_WIN32_KHR
93844       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
93845 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93846 #ifdef VK_USE_PLATFORM_WIN32_KHR
93847       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
93848 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93849 #ifdef VK_USE_PLATFORM_WIN32_KHR
93850       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
93851 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93852       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
93853       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
93854       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
93855       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
93856       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
93857       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
93858       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
93859       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
93860       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
93861 #ifdef VK_ENABLE_BETA_EXTENSIONS
93862       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
93863 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93864       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
93865 #ifdef VK_ENABLE_BETA_EXTENSIONS
93866       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
93867       if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
93868 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93869       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
93870       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
93871       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
93872       vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
93873       if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
93874       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
93875 #ifdef VK_USE_PLATFORM_WIN32_KHR
93876       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
93877 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93878       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
93879       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
93880       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
93881       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
93882       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
93883       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
93884 #ifdef VK_USE_PLATFORM_WIN32_KHR
93885       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
93886 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93887       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
93888 #ifdef VK_USE_PLATFORM_WIN32_KHR
93889       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
93890 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93891       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
93892       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
93893       vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
93894       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
93895       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
93896       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
93897       vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
93898       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
93899       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
93900       vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
93901       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
93902       vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
93903       vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
93904       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
93905       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
93906 #ifdef VK_USE_PLATFORM_WIN32_KHR
93907       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
93908 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
93909       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
93910       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
93911       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
93912       vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
93913       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
93914       vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
93915       vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
93916       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
93917       vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
93918       if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT;
93919       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
93920       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
93921       vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
93922       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
93923       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
93924       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
93925       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
93926       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
93927       if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR;
93928       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
93929       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
93930       if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR;
93931       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
93932       vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
93933       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
93934       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
93935       if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
93936       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
93937       vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
93938       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
93939       vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
93940       if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR;
93941 #ifdef VK_ENABLE_BETA_EXTENSIONS
93942       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
93943 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
93944     }
93945   };
93946 
93947 } // namespace VULKAN_HPP_NAMESPACE
93948 
93949 namespace std
93950 {
93951 
93952   template <> struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
93953   {
operator ()std::hash93954     std::size_t operator()(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const& accelerationStructureKHR) const VULKAN_HPP_NOEXCEPT
93955     {
93956       return std::hash<VkAccelerationStructureKHR>{}(static_cast<VkAccelerationStructureKHR>(accelerationStructureKHR));
93957     }
93958   };
93959 
93960   template <> struct hash<VULKAN_HPP_NAMESPACE::Buffer>
93961   {
operator ()std::hash93962     std::size_t operator()(VULKAN_HPP_NAMESPACE::Buffer const& buffer) const VULKAN_HPP_NOEXCEPT
93963     {
93964       return std::hash<VkBuffer>{}(static_cast<VkBuffer>(buffer));
93965     }
93966   };
93967 
93968   template <> struct hash<VULKAN_HPP_NAMESPACE::BufferView>
93969   {
operator ()std::hash93970     std::size_t operator()(VULKAN_HPP_NAMESPACE::BufferView const& bufferView) const VULKAN_HPP_NOEXCEPT
93971     {
93972       return std::hash<VkBufferView>{}(static_cast<VkBufferView>(bufferView));
93973     }
93974   };
93975 
93976   template <> struct hash<VULKAN_HPP_NAMESPACE::CommandBuffer>
93977   {
operator ()std::hash93978     std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandBuffer const& commandBuffer) const VULKAN_HPP_NOEXCEPT
93979     {
93980       return std::hash<VkCommandBuffer>{}(static_cast<VkCommandBuffer>(commandBuffer));
93981     }
93982   };
93983 
93984   template <> struct hash<VULKAN_HPP_NAMESPACE::CommandPool>
93985   {
operator ()std::hash93986     std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandPool const& commandPool) const VULKAN_HPP_NOEXCEPT
93987     {
93988       return std::hash<VkCommandPool>{}(static_cast<VkCommandPool>(commandPool));
93989     }
93990   };
93991 
93992   template <> struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
93993   {
operator ()std::hash93994     std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const& debugReportCallbackEXT) const VULKAN_HPP_NOEXCEPT
93995     {
93996       return std::hash<VkDebugReportCallbackEXT>{}(static_cast<VkDebugReportCallbackEXT>(debugReportCallbackEXT));
93997     }
93998   };
93999 
94000   template <> struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
94001   {
operator ()std::hash94002     std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const& debugUtilsMessengerEXT) const VULKAN_HPP_NOEXCEPT
94003     {
94004       return std::hash<VkDebugUtilsMessengerEXT>{}(static_cast<VkDebugUtilsMessengerEXT>(debugUtilsMessengerEXT));
94005     }
94006   };
94007 
94008 #ifdef VK_ENABLE_BETA_EXTENSIONS
94009   template <> struct hash<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
94010   {
operator ()std::hash94011     std::size_t operator()(VULKAN_HPP_NAMESPACE::DeferredOperationKHR const& deferredOperationKHR) const VULKAN_HPP_NOEXCEPT
94012     {
94013       return std::hash<VkDeferredOperationKHR>{}(static_cast<VkDeferredOperationKHR>(deferredOperationKHR));
94014     }
94015   };
94016 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
94017 
94018   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorPool>
94019   {
operator ()std::hash94020     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorPool const& descriptorPool) const VULKAN_HPP_NOEXCEPT
94021     {
94022       return std::hash<VkDescriptorPool>{}(static_cast<VkDescriptorPool>(descriptorPool));
94023     }
94024   };
94025 
94026   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorSet>
94027   {
operator ()std::hash94028     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSet const& descriptorSet) const VULKAN_HPP_NOEXCEPT
94029     {
94030       return std::hash<VkDescriptorSet>{}(static_cast<VkDescriptorSet>(descriptorSet));
94031     }
94032   };
94033 
94034   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
94035   {
operator ()std::hash94036     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSetLayout const& descriptorSetLayout) const VULKAN_HPP_NOEXCEPT
94037     {
94038       return std::hash<VkDescriptorSetLayout>{}(static_cast<VkDescriptorSetLayout>(descriptorSetLayout));
94039     }
94040   };
94041 
94042   template <> struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
94043   {
operator ()std::hash94044     std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const& descriptorUpdateTemplate) const VULKAN_HPP_NOEXCEPT
94045     {
94046       return std::hash<VkDescriptorUpdateTemplate>{}(static_cast<VkDescriptorUpdateTemplate>(descriptorUpdateTemplate));
94047     }
94048   };
94049 
94050   template <> struct hash<VULKAN_HPP_NAMESPACE::Device>
94051   {
operator ()std::hash94052     std::size_t operator()(VULKAN_HPP_NAMESPACE::Device const& device) const VULKAN_HPP_NOEXCEPT
94053     {
94054       return std::hash<VkDevice>{}(static_cast<VkDevice>(device));
94055     }
94056   };
94057 
94058   template <> struct hash<VULKAN_HPP_NAMESPACE::DeviceMemory>
94059   {
operator ()std::hash94060     std::size_t operator()(VULKAN_HPP_NAMESPACE::DeviceMemory const& deviceMemory) const VULKAN_HPP_NOEXCEPT
94061     {
94062       return std::hash<VkDeviceMemory>{}(static_cast<VkDeviceMemory>(deviceMemory));
94063     }
94064   };
94065 
94066   template <> struct hash<VULKAN_HPP_NAMESPACE::DisplayKHR>
94067   {
operator ()std::hash94068     std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayKHR const& displayKHR) const VULKAN_HPP_NOEXCEPT
94069     {
94070       return std::hash<VkDisplayKHR>{}(static_cast<VkDisplayKHR>(displayKHR));
94071     }
94072   };
94073 
94074   template <> struct hash<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
94075   {
operator ()std::hash94076     std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayModeKHR const& displayModeKHR) const VULKAN_HPP_NOEXCEPT
94077     {
94078       return std::hash<VkDisplayModeKHR>{}(static_cast<VkDisplayModeKHR>(displayModeKHR));
94079     }
94080   };
94081 
94082   template <> struct hash<VULKAN_HPP_NAMESPACE::Event>
94083   {
operator ()std::hash94084     std::size_t operator()(VULKAN_HPP_NAMESPACE::Event const& event) const VULKAN_HPP_NOEXCEPT
94085     {
94086       return std::hash<VkEvent>{}(static_cast<VkEvent>(event));
94087     }
94088   };
94089 
94090   template <> struct hash<VULKAN_HPP_NAMESPACE::Fence>
94091   {
operator ()std::hash94092     std::size_t operator()(VULKAN_HPP_NAMESPACE::Fence const& fence) const VULKAN_HPP_NOEXCEPT
94093     {
94094       return std::hash<VkFence>{}(static_cast<VkFence>(fence));
94095     }
94096   };
94097 
94098   template <> struct hash<VULKAN_HPP_NAMESPACE::Framebuffer>
94099   {
operator ()std::hash94100     std::size_t operator()(VULKAN_HPP_NAMESPACE::Framebuffer const& framebuffer) const VULKAN_HPP_NOEXCEPT
94101     {
94102       return std::hash<VkFramebuffer>{}(static_cast<VkFramebuffer>(framebuffer));
94103     }
94104   };
94105 
94106   template <> struct hash<VULKAN_HPP_NAMESPACE::Image>
94107   {
operator ()std::hash94108     std::size_t operator()(VULKAN_HPP_NAMESPACE::Image const& image) const VULKAN_HPP_NOEXCEPT
94109     {
94110       return std::hash<VkImage>{}(static_cast<VkImage>(image));
94111     }
94112   };
94113 
94114   template <> struct hash<VULKAN_HPP_NAMESPACE::ImageView>
94115   {
operator ()std::hash94116     std::size_t operator()(VULKAN_HPP_NAMESPACE::ImageView const& imageView) const VULKAN_HPP_NOEXCEPT
94117     {
94118       return std::hash<VkImageView>{}(static_cast<VkImageView>(imageView));
94119     }
94120   };
94121 
94122   template <> struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
94123   {
operator ()std::hash94124     std::size_t operator()(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const& indirectCommandsLayoutNV) const VULKAN_HPP_NOEXCEPT
94125     {
94126       return std::hash<VkIndirectCommandsLayoutNV>{}(static_cast<VkIndirectCommandsLayoutNV>(indirectCommandsLayoutNV));
94127     }
94128   };
94129 
94130   template <> struct hash<VULKAN_HPP_NAMESPACE::Instance>
94131   {
operator ()std::hash94132     std::size_t operator()(VULKAN_HPP_NAMESPACE::Instance const& instance) const VULKAN_HPP_NOEXCEPT
94133     {
94134       return std::hash<VkInstance>{}(static_cast<VkInstance>(instance));
94135     }
94136   };
94137 
94138   template <> struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
94139   {
operator ()std::hash94140     std::size_t operator()(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const& performanceConfigurationINTEL) const VULKAN_HPP_NOEXCEPT
94141     {
94142       return std::hash<VkPerformanceConfigurationINTEL>{}(static_cast<VkPerformanceConfigurationINTEL>(performanceConfigurationINTEL));
94143     }
94144   };
94145 
94146   template <> struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice>
94147   {
operator ()std::hash94148     std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevice const& physicalDevice) const VULKAN_HPP_NOEXCEPT
94149     {
94150       return std::hash<VkPhysicalDevice>{}(static_cast<VkPhysicalDevice>(physicalDevice));
94151     }
94152   };
94153 
94154   template <> struct hash<VULKAN_HPP_NAMESPACE::Pipeline>
94155   {
operator ()std::hash94156     std::size_t operator()(VULKAN_HPP_NAMESPACE::Pipeline const& pipeline) const VULKAN_HPP_NOEXCEPT
94157     {
94158       return std::hash<VkPipeline>{}(static_cast<VkPipeline>(pipeline));
94159     }
94160   };
94161 
94162   template <> struct hash<VULKAN_HPP_NAMESPACE::PipelineCache>
94163   {
operator ()std::hash94164     std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineCache const& pipelineCache) const VULKAN_HPP_NOEXCEPT
94165     {
94166       return std::hash<VkPipelineCache>{}(static_cast<VkPipelineCache>(pipelineCache));
94167     }
94168   };
94169 
94170   template <> struct hash<VULKAN_HPP_NAMESPACE::PipelineLayout>
94171   {
operator ()std::hash94172     std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineLayout const& pipelineLayout) const VULKAN_HPP_NOEXCEPT
94173     {
94174       return std::hash<VkPipelineLayout>{}(static_cast<VkPipelineLayout>(pipelineLayout));
94175     }
94176   };
94177 
94178   template <> struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
94179   {
operator ()std::hash94180     std::size_t operator()(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const& privateDataSlotEXT) const VULKAN_HPP_NOEXCEPT
94181     {
94182       return std::hash<VkPrivateDataSlotEXT>{}(static_cast<VkPrivateDataSlotEXT>(privateDataSlotEXT));
94183     }
94184   };
94185 
94186   template <> struct hash<VULKAN_HPP_NAMESPACE::QueryPool>
94187   {
operator ()std::hash94188     std::size_t operator()(VULKAN_HPP_NAMESPACE::QueryPool const& queryPool) const VULKAN_HPP_NOEXCEPT
94189     {
94190       return std::hash<VkQueryPool>{}(static_cast<VkQueryPool>(queryPool));
94191     }
94192   };
94193 
94194   template <> struct hash<VULKAN_HPP_NAMESPACE::Queue>
94195   {
operator ()std::hash94196     std::size_t operator()(VULKAN_HPP_NAMESPACE::Queue const& queue) const VULKAN_HPP_NOEXCEPT
94197     {
94198       return std::hash<VkQueue>{}(static_cast<VkQueue>(queue));
94199     }
94200   };
94201 
94202   template <> struct hash<VULKAN_HPP_NAMESPACE::RenderPass>
94203   {
operator ()std::hash94204     std::size_t operator()(VULKAN_HPP_NAMESPACE::RenderPass const& renderPass) const VULKAN_HPP_NOEXCEPT
94205     {
94206       return std::hash<VkRenderPass>{}(static_cast<VkRenderPass>(renderPass));
94207     }
94208   };
94209 
94210   template <> struct hash<VULKAN_HPP_NAMESPACE::Sampler>
94211   {
operator ()std::hash94212     std::size_t operator()(VULKAN_HPP_NAMESPACE::Sampler const& sampler) const VULKAN_HPP_NOEXCEPT
94213     {
94214       return std::hash<VkSampler>{}(static_cast<VkSampler>(sampler));
94215     }
94216   };
94217 
94218   template <> struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
94219   {
operator ()std::hash94220     std::size_t operator()(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const& samplerYcbcrConversion) const VULKAN_HPP_NOEXCEPT
94221     {
94222       return std::hash<VkSamplerYcbcrConversion>{}(static_cast<VkSamplerYcbcrConversion>(samplerYcbcrConversion));
94223     }
94224   };
94225 
94226   template <> struct hash<VULKAN_HPP_NAMESPACE::Semaphore>
94227   {
operator ()std::hash94228     std::size_t operator()(VULKAN_HPP_NAMESPACE::Semaphore const& semaphore) const VULKAN_HPP_NOEXCEPT
94229     {
94230       return std::hash<VkSemaphore>{}(static_cast<VkSemaphore>(semaphore));
94231     }
94232   };
94233 
94234   template <> struct hash<VULKAN_HPP_NAMESPACE::ShaderModule>
94235   {
operator ()std::hash94236     std::size_t operator()(VULKAN_HPP_NAMESPACE::ShaderModule const& shaderModule) const VULKAN_HPP_NOEXCEPT
94237     {
94238       return std::hash<VkShaderModule>{}(static_cast<VkShaderModule>(shaderModule));
94239     }
94240   };
94241 
94242   template <> struct hash<VULKAN_HPP_NAMESPACE::SurfaceKHR>
94243   {
operator ()std::hash94244     std::size_t operator()(VULKAN_HPP_NAMESPACE::SurfaceKHR const& surfaceKHR) const VULKAN_HPP_NOEXCEPT
94245     {
94246       return std::hash<VkSurfaceKHR>{}(static_cast<VkSurfaceKHR>(surfaceKHR));
94247     }
94248   };
94249 
94250   template <> struct hash<VULKAN_HPP_NAMESPACE::SwapchainKHR>
94251   {
operator ()std::hash94252     std::size_t operator()(VULKAN_HPP_NAMESPACE::SwapchainKHR const& swapchainKHR) const VULKAN_HPP_NOEXCEPT
94253     {
94254       return std::hash<VkSwapchainKHR>{}(static_cast<VkSwapchainKHR>(swapchainKHR));
94255     }
94256   };
94257 
94258   template <> struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
94259   {
operator ()std::hash94260     std::size_t operator()(VULKAN_HPP_NAMESPACE::ValidationCacheEXT const& validationCacheEXT) const VULKAN_HPP_NOEXCEPT
94261     {
94262       return std::hash<VkValidationCacheEXT>{}(static_cast<VkValidationCacheEXT>(validationCacheEXT));
94263     }
94264   };
94265 }
94266 #endif
94267